Week 1 - Software Engineering
Tools (Software Engineering Layer)
Aid in automation and support of software engineering processes and methods.
Application Software
Process business or technical data in a way that facilitates business operations or decision making. Ex: Word, PowerPoint, Minecraft, etc...
Cons of the Spiral Process Model
- Risk analysis failures can doom the project - Project may be hard to manage - Requires an expert development team
Prescriptive Process Model
Advocate an orderly approach to software engineering.
Pros of Prototyping Process Model
- Reduced impact of requirements changes - customer is involved early and often - Works well for small projects - reduces likelihood of product rejection
Prototyping Process Model
- Begins with communication (collecting requirements) - A prototyping iteration is planned - Design work leads to the construction of a prototype - Deployed by stakeholders who provide feedback to further refine requirements and design
Waterfall Process Model
- Classic life cycle : Systematic, sequential approach to development - Simplest and oldest paradigm for sofware engineering
Framework Activities
- Communication - Planning - Modeling - Construction - Deployment
Pros of the Spiral Process Model
- Continuous customer involvement - Development risks are managed - Suitable for large, complex projects - Works well for extensible products.
Cons of Prototyping Process Model
- Customer involvement may cause delays - Temptation to "ship" a prototype - Work lost in a throwaway prototype - Hard to plan and manage
Spiral Process Model
- Mix of iterative nature of prototyping and the controlled and systematic waterfall model - Incrementally grows the software's degree of definition and implementation while also decreasing its degree of risk - Prototyping becomes a risk reduction mechanism (moves the software closer and closer to an ideal form each cycle.
Cons of the V-Model Process Model
- No fundamental difference between the V-model and the waterfall model. - Waterfall model is being split and folded up to create the shape of the V-model. - It does not accommodate change well. - Testing occurs late in the process. - Customer approval is at the end.
Pros of the Unified Process Model
- Quality documentation emphasized - Continuous customer involvement - Accommodates requirements changes - Works well for maintenance projects
Unified Process Model
- Software process closely aligned with the Unified Modeling Language (UML)
Umbrella Actvities (applied throughout a software project)
- Software project tracking and control - Risk management - Software Quality Assurance - Technical Reviews - Measurement - Software configuration management - Resusability management - Work product preparation and production
Seven Broad Categories of Software Applications
- System Software - Application Software - Engineering/Scientific Software - Embedded Software - Product-line Software - Web/Mobile Applications - Artificial Intelligence Software
Essence of Problem Solving
- Understand the Problem - Plan a Solution - Carry Out the plan - Examine the Result for Accuracy
Cons of the Unified Process Model
- Use cases not always precise - Tricky software increment integration - Overlapping phases can cause problems - Requires expert development team
Cons of the Waterfall Process Model
- does not accommodate change well - Testing occurs late in the process - Customer approval is at the end
Pros of the Waterfall Process Model
- easy to understand and plan - works for well-understood small projects - analysis and testing are straightforward
Pros of the V-Model Process Model
- easy to understand and plan - works for well-understood small projects - analysis and testing are straightforward - Good way of visualizing how verification and validation actions are applied to earlier engineering work
V-Model Process Model
- variation of the waterfall model - Attempts to capture the relationship between quality assurance actions and the actions associated with communication, modelling, and early construction activities. - Once code has been generated, the team moves up the right side of the V carrying out a series of tests that validate the work done as the team moved down the left side during development
Evolutionary Process Flow
Activities are executed in a "circular" manner, with each complete circuit leading to a more complete version of the software
Product-Line Software
Collection of similar software systems from a shared set of software assets.
System Software
Compilers, editors, file management, utilities, operating system components, etc...
Task Set
Defines the actual work to be done to accomplish the objectives of a software engineering action. Must choose one that accommodates the needs of the project and the characteristics of the team.
Linear Process Flow
Each of the process activities are executed in sequence
Parallel Process Flow
One or more activities are executed in parallel with other activities (for example, modeling for one aspect might be executed at the same time that another aspect is under construction).
Iterative Process Flow
One or more of the activities are repeated before proceeding to the next
Methods (Software Engineering Layer)
Provide the technical "how-to's" for building software.
Embedded Software
Resides within a product or system and is used to implement and control features and functions for the end user and the system itself. End user rarely interacts with it directly.