76 terms

Software Engineering - WGU (C-188)

STUDY
PLAY
Software
is a product and a vehicle for delivering a product (information).
Software Deteriorates rather than wears out because...
changes introduce errors in component interactions.
What is a Software Process
a framework of activities, actions, and tasks that are required to build high quality software.
What are the 5 Software Engineering Framework Activities
Communication, Planning, Modeling, Construction, Deployment.
Software Engineering Umbrella Activities
Project Tracking and Control, Risk Management, Quality Assurance, Configuration Management, Technology Review.
Process Flow
how the framework activities, actions and task occur within each framework activities
Linear Process Flow
executes each of the five framework activities in a sequence
Iterative Process Flow
repeats one or more activities before continuing.
Evolutionary Process Flow
executes in a circular manner. each pass creates a more complex and evolved product.
Parallel Process Flow
executes on or more activity in parallel with others.
Process Pattern
describes a process related issue that is encountered during the software engineering work.
Template for Process Pattern Includes
Pattern Name, Forces, Type (Stage, Task, Phase Pattern), Initial Context, Problems, Solutions, Resulting Context, Related Patterns.
Standard CMMI Assessment Method for Process Improvement (SCAMPI)
5 phase process: consisting of: Initiating, Diagnosing, Establishing, Acting and Learning.
CMM-Base Appraisal for Internal Process Improvement (CBA-IPI)
diagnostic technique for assessing maturity of a software organization
ISO/IEC 15504 (SPICE)
Standard that defines a set of requirements for software process assessment.
ISO 9001:2000 for Software
generic standard for any organization that wants to improve overall quality.
Prescriptive Process Model
Model with structure, order following a sequence of defined guidelines for progress. Prescribed set of process elements, framework activities, software engineering actions, tasks, work products, quality Assurance and Change Control Mechanisms
Waterfall Model
Classic Life Cycle or V-Model, Sequential model starting with requirements gathering and progresses through planning modeling, constructing and deploying. Oldest Paradigm
Problems with waterfall
1. projects rarely flow sequentially
2. difficult to fully realize customer requirements
3. customer patience is key, long time until finished product.
two common evolutionary process models
Prototyping and Spiral Model
Agile Modeling
is a practice-based methodology for effective modeling and documentation of software-based systems.
Modeling (AUP)
UML representation of the business and problem domains are created
Implementation (AUP)
Models are translated into source code.
Testing (AUP)
Series of tests are designed and executed to uncover errors and to ensure that a source code meets requirements.
Deployment (AUP)
Software increment is delivered and feedback from end users is obtained.
Dynamic Systems Development Method (DSDM) Activities
1. Feasibility Study
2. Business Study
3. Iterative Cycles
Feasibility Study (DSDM)
study the basic buisness requirements and contraints
Business Study (DSDM)
ids functional and informal requirements
Iterative Cycles (DSDM)
Provide incremental prototypes for demo, intent is to gather additional requirements.
Project Management (AUP)
Tracks changes and progress
Environmental Management (AUP)
tracks the environment of the software (infrastructure)
Agile Methods are also know as......
light methods
Active vs Passive Communicators
Active: achieved by team dynamics
Passive: achieved by information radiators.
Acceptance / Customer Tests (XP)
focuses on overall system features and functionality viewable by the customer.
Agile Process Models
Extreme Programming (XP)
Scrum
Dynamic Systems Development Method (DSDM)
Agile Modeling (AM)
Agile Unified Process (AUP)
Extreme Programming (XP)
Object-Oriented Approach, Agile
Extreme Programming (XP) Values
Communication - Dev and Stakeholder
Simplicity - design current not future needs
Feedback - implement software, unit testing
Courage
Respect
Extreme Programming (XP) Key Activiites
Planning
Design - CRC Cards
Coding
Testing
Industrial Extreme Programming (XP)
brings in test driven management, establishing measurements through out.
Issues with Extreme Programming (XP)
Requirement Volatility
Conflicting Customer Needs
Requirements are Expressed informally
Lack of formal design
Scrum
Small teams, process orientated, frequent increments, testings and documentation occurs during build, ability to declare product done any time.
Scrum Process Patterns
Backlog
Sprints
Scrum Meetings - What was done, what obstacles, what will you do.
Demos
Dynamic Systems Development Methods (DSDM)
Framework for building and maintaining systems, Pareto Principle, incremental, time boxes
Guiding Principles for Dynamic Systems Development Methods (DSDM)
Active User Involvement
Teams empowered
Iterative and incremental development
All changes are reversible
requirements are base lined at a high level
Testing through out life cycle
collaborative and cooperative
Lifecycle Activities for Dynamic Systems Development Methods (DSDM)
Feasibility Study
Business Study
Functional Model Iteration
Design and Build Iteration
Implementation
Agile Modeling (definition)
Practice Based, light weight methodology for effective modeling and documentation
Agile Modeling Principle
Model with a purpose.
Use Multiple Models
Travel Light (keep models with long-term value)
Content is more important that representation
know the models and tools you use to create them
adapt locally
Agile Modeling Requirements Gathering and Analysis Modeling
Work collaboratively, collaborative analysis continues with customer.
Agile Unified Process Activities
Inception, Elaboration, Construction, Transition
Agile Unified Process Iterations addresses
Modeling - UML of business and problem domains
Implementation
Testing
Deployment
Configuration and Project Management
Environmental Management
Generic Process Framework
Communication
Planning
Modeling
Construction
Deployment
Process Flows
Linear Process Flow, Iterative Process Flow, Parallel Process Flow
Task Sets
Each software engineering actions is associated with a framework activity, small one person projects do not require task sets as large and detailed as larger more complex projects.
Process Pattern Template
Pattern Name
Forces
Type
- Stage Patterns
- Task Patterns
- Phase Patterns
Initial Context
Solutions
Resulting Context
Related Patterns
Known Used / Examples
Process Assessment and Improvement
Standard CMMI Assessment Method for Process Improvement (SCAMPI)

CMM-Based Appraisal for Internal Process Improvement (CBAIPI)

SPICE (ISO/IE15504)

ISO 9001:2000
Software Process Models
Waterfall Model

Incremental Model

Evolutionary Model

Concurrent Development Model
Specialized Process Models
Component-Based development

Formal Methods Model

Aspect-Oriented Software Development
Unified Process
Use-case driven, architecture centric, iterative, and incremental software process
Unified Process Phases
Inception, Elaboration, Construction, Transition, Production
Personal Software Process (PSP)
Emphasizes personal measurement of both work products and quality of work products

Stresses importance of identifying errors early and to understand the types of errors
Personal Software Process (PSP) Framework Activities
Planning - size / resource estimates
High-level design -
High-Level design review -
Development -
Postmortem -
Requirements Engineering Tasks
Inception
Elicitation
Elaboration
Negotiation
Specification
Requirements Validation
Requirements Management
Quality Function Deployment (QFD)
Technique that translates customer needs into software - Customer Voice Table

Function deployment used to determine value

Information deployment identifies data objects

Task Deployment examines system behavior

Value Analysis - conducted to determine priority
Elicitation Work Products
Statement of Need
Bounded statement of scope
List of Stakeholders
Description of systems tech environment
List of requirements
Set of usage scenarios
Prototypes
Use Case Template
· Use Case Name
· Primary actor
· Goal in context
· Preconditions
· Trigger
· Scenario details
· Exceptions
· Priority
· When available
· Frequency of use
· Channel to actor
· Secondary actors
· Channels to secondary actors
· Open issues
· Analysis Model Elements
Scenario-based elements (use cases describe system from user perspective)

Class-based elements (relationships among objects manipulated by actors and their attributes are depicted as classes)

Behavioral elements (depict system and class behavior as states and transitions between states)

Flow-oriented elements (shows how information flows through the system and is transformed by the system functions)
Requirements Model Objectives
· Describe what the customer requires.
· Establish a basis for the creation of a software design.
· Devise a set of requirements that can be validated once the software is built.
Requirements Models
· Scenario-based (system from the user's point of view)
· Data (shows how data are transformed inside the system)
· Class-oriented (defines objects, attributes, and relationships)
· Flow-oriented (shows how data are transformed inside the system)
· Behavioral (show the impact of events on the system states)
Structured analysis
Considers data and processes that transform data as separate entities
o Data objects are modeled to define their attributes and relationships
o Process are modeled to show how they transform data as it flows thought the system
Object-oriented analysis
Focuses on the definition of classes and the manner in which they collaborate to effect the customer requirements
Use Cases
Captures the interaction between actors, listing activities performed by a single actor to accomplish a single function
UML Swimlane Diagram
Shows flow of activities in use case as well as indicating which actor has responsibilities for activity rectangle actions.

responsibilities are represented by parallel line segments that divide the diagram
Class Based Modeling
Defines the objects a system manipulates, operations applied to objects, and the collaborations occurring between classes.
Elements of a Class Model
Classes, Objects, Attributes, Operations, CRC Models, Collaboration Diagrams and packages.
Class-Responsibility-Collaborator (CRC) Modeling
Index Cards that represent classes, one card per class, divided into 3 sections (class name, class responsibility, class collaborator)
What umbrella activity in the software project can result in models.
...