Software Engineering Course Mind Map
Structure as follows Software Engineering What is software engineering Methods Systematic Disciplined Quantifiable Process Software development Operation Maintenance Main constituent elements People Project Process Methods Tools Software artifacts Driving forces behind software engineering progress Hardware capability Software technology Social needs Level of science and technology The 8 quality factors of software Correctness The degree to which software satisfies the requirements specification The degree to which it achieves user goals Usability Cost of learning and using Operating the software Inputting data Interpreting software output Reliability Probability of completing expected functions Probability of successful operation Efficiency
目录2 个章节
Structure as follows
- Software Engineering
- What is software engineering
- Methods
- Systematic
- Disciplined
- Quantifiable
- Process
- Software development
- Operation
- Maintenance
- Methods
- Main constituent elements
- People
- Project
- Process
- Methods
- Tools
- Software artifacts
- Driving forces behind software engineering progress
- Hardware capability
- Software technology
- Social needs
- Level of science and technology
- The 8 quality factors of software
- Correctness
- The degree to which software satisfies the requirements specification
- The degree to which it achieves user goals
- Usability
- Cost of learning and using
- Operating the software
- Inputting data
- Interpreting software output
- Cost of learning and using
- Reliability
- Probability of completing expected functions
- Probability of successful operation
- Efficiency
- Ability to complete system functions using computer space resources
- Using computer time resources
- Maintainability
- After delivery, through modification, in order to
- Correct latent defects
- Improve performance
- Other attributes
- After delivery, through modification, in order to
- Portability
- Difficulty of installing on different computers
- Installing in different environments
- Security
- Mechanisms to control/protect programs and data from damage, preventing
- Access
- Use
- Modification
- Destruction
- Disclosure
- Mechanisms to control/protect programs and data from damage, preventing
- Reusability
- The degree to which software components can be applied in multiple contexts
- Relatively independent in concept
- Or one or a group of related modules that are relatively independent in function
- The degree to which software components can be applied in multiple contexts
- Correctness
- Generic software development process
- Activities
- Communication
- Planning
- Modeling
- Construction
- Deployment
- Advantages
- Enhances software development capability
- Highlights the characteristics of software engineering
- Has greater flexibility
- Has greater adaptability
- Activities
- UML diagrams used in each phase
- Project initiation
- Inception
- Use case diagram: use cases describing software requirements
- Activity diagram: representing business processes
- Interaction diagram: representing the internal implementation of use cases
- Elaboration
- Package diagram: representing software architecture
- Component diagram: representing software architecture
- Deployment diagram: representing software architecture
- Construction
- Class diagram: software detailed design model
- Interaction diagram: software detailed design model
- Activity diagram: software detailed design model
- State diagram: software detailed design model
- Component diagram: software detailed design model
- Workflow of the requirements engineering process
- Requirements engineering planning
- Requirements elicitation
- Requirements analysis
- Requirements specification
- Requirements validation
- Summary
- Use-case-driven requirements elicitation process
- Define the software problem
- Create framework use cases
- Refine use cases
- Review the use case model
- Tasks of requirements analysis
- Based on the requirements elicitation phase
- Obtain an understanding of software requirements
- More in-depth
- More complete
- Represent software requirements as an analysis model
- Oriented toward software designers
- Easy to modify
- Maintain
- Use-case-driven requirements analysis process
- Requirements priority analysis
- Use case analysis
- Analysis model review
- Rapid prototypes built to assist requirements analysis
- Principles that software design should follow
- Abstraction and stepwise refinement
- High cohesion and loose coupling
- Information hiding and separation of concerns
- Workflow of the software design process represented with UML activity diagrams
- Design planning
- Architecture design
- Human-computer interaction design
- Detailed design
- Design integration and verification
- Summary
- Main activities of the user interface design process
- User analysis
- Task analysis and modeling
- Conceptual design
- Interface flow design
- Interface refinement
- Main activities of the detailed design process
- Use case design
- Subsystem design
- Component design
- Class design
- Data model design
- Design integration and verification
- Testing and principles of software testing
- Tasks
- Check whether the software satisfies the requirements specification
- Discover as many latent defects as possible in the software before the software artifact is delivered
- Reduce the cost of corrective maintenance after delivery
- Principles
- Testing is an ongoing process, not a phase
- Testing must be planned, controlled, and provided with sufficient time and resources
- Testing should be prioritized
- Testing should have a focus
- Testing is not to prove the correctness of a program, but to prove that it does not work
- Testing cannot be exhaustive; testing can stop when test adequacy is satisfied
- Testing is a friend of development, not an enemy of development
- Testers should test impartially and record and report defects truthfully
- Test automation can solve some problems, but not all
- Testing should not only include functional verification, but also verification of the following aspects
- Performance
- Reliability
- Maintainability
- Security
- Tasks
- Test cases
- Concept
- Input data of the test design
- Contents
- Generated input data
- Program execution conditions
- Test steps
- Expected output
- Concept
- α and β testing
- α testing: testing conducted by system developers, without user participation
- β testing: testing by users, usually without developers present
- Classification of software maintenance
- Corrective maintenance
- Perfective maintenance
- Adaptive maintenance
- Preventive maintenance
- What levels of work does software restructuring include
- Document restructuring
- Restructuring
- Reverse engineering
- Reengineering
- Factors in user interface design
- Practicality
- Flexibility
- Interface complexity and reliability
- What is software engineering
I tidied up the mind map, as follows

_EOF_
Software Engineering Course Mind Map
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
奇怪的操作系统相关习题~4-21
操作系统作业 操作系统在计算机系统分层中处于哪个层次?它与上下层是怎样衔接的? 计算机系统的分层: 第1级是微程序机器层,这是一个实在的硬件层,它由机器硬件直接执行微指令。 第2级是传统机器语言,它也是一个实际的机器层,它由微程序解释机器指令系统。 第3级是操作系统层,它由操作系统程序实现。操作系统程序由机器指令和广义指令组成,这些广义指令是为了扩展机器功能而设置的,它是由操作系统定义和解释的软件
2022-06-17 · 计科基础 · 约 1 分钟
设计模式之代理模式浅析
代理模式 在客户端与实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象, 隐藏实体的具体实现细节。 Proxy还可以与业务代码分离,部署到另外的服务器。业务代码中通过RPC来委派任务。 代理模式与父类和接口的异同 相同点:代理模式的作用和父类以及接口和组合的作用类似,都是为了聚合共用部分,减少公共部分的代码 不同点: 相比起父类,他们的语境不同,父类要表达的含义是 is
2022-06-17 · 计科基础 · 约 1 分钟
操作系统学习二:进程同步与互斥之生产者-消费者问题--NetCore实现
目的 1. 掌握进程(线程)的同步与互斥。 2. 掌握生产者消费者问题的实现方法。 3. 掌握VC的多线程编程方法。 内容 本实验要求设计并实现一个进程,该进程拥有3个生产者线程和1个消费者线程,它们使用10个不同的缓冲区。需要使用如下信号量: 一个mutex信号量,用以阻止生产者线程和消费者线程同时操作缓冲区队列; 一个full信号量,当生产者线程生产出一个物品时可以用它向消费者线程发出信号;
2022-06-17 · 计科基础 · 约 1 分钟
编译原理学习一,去除代码中的注释
前言 开始学习编译原理了耶~ 关于编译原理的所有练习,按照老规矩,还是用我最喜欢的C#语言来实现,运行在.NetCore平台上~ 关于这个系列的所有代码已经上传到github了,项目主页: https://github.com/Deali-Axy/CompilerConstructionLearning 本次题目 对C或C++等高级程序设计语言编写的源程序中的//注释和/…/注释进行删除,保留删除
2022-06-17 · 计科基础 · 约 1 分钟
讨论
共 0 条加载评论中…