Midterm Flashcards
Software Engineering
Study of using tools to make coding more efficient
Characteristics of Software Engineering
- development of large programs
- evolution of a code base: involves documentation
- personnel management
- balance
Process Model of Software Development
- Problem
through Requirements Engineering leads to - Requirements Specification through Design leads to
- Specification through Implementation leads to
- Program through Testing leads to
- Working Program which has Maintenance
Problem
obstacle that gets in the way of an achievement
requirements engineering
process of getting a complete description of the problem.
at the end of the engineering, a specification document is produced
specification document
- function of the software
- possible future extensions
- documentation
- response time
Problem Defining Process
1) Elicitation: figure out what the user wants
2) Speicifcation: use cases and scenarios to determine what is the best route for getting the want
3) Validation: review and go back and see if the solution came up with is a valid solution that meets clients needs
Requirements Speicfication
decomposing problem into components or interfaces
- produces requirements specification document
Requirement
what the customer needs in a software
Types of Requirements
- Functional Requirement
- Nonfunctional Requirement
Functional Requirement
specify what the software does
Nonfunctional Requirement
specify the qualities of the software
Requirements Specification Document
- problem definition
- functional requirements
- nonfunctional requirements
- resources
- data
Nonfunctional requirements
- robustness: do when error occurs
- security: who has access
- safety: can it kill
- performance: constraints on performance
Design
needs to solve the problem outlined in the requirements specification document
- create models to stimulate problem through architectural design
architecture
- how components of a decomposed problem relate to each other
Purpose of architecture
- communicate design
- capture early design decisions
- establish reusable abstract representation
Types of Architecture
- Centralized (standard)
- Distributed
Centralized Architecture
pipes and filters - takes a data stream of input and manipulates it
Distributed Architecture
- uses shared repository with a central data store
3 Layered Architecture
- Presentation
- Application Logic Layer
- Domain
3 Layer Architecture: Presentation Layer
- receives user input and displays output
3 Layer Architecture: Application Logic Layer
- calls to domain and decides what to show user
- Business Logic: process UI commands
- Data Access: allows us to interface with the domain
3 Layer Architecture: Domain
remote database
documents from Design Phase
- design specification document
- user manual for the system
- system test plan
Software Implementation
use design to construct a solution to the problem
deliverables from software implementation phase
- program
- refined user manual
- refined test plan
4 types of software testing
- unit testing
- systemwide testing
- integration testing
- acceptance testing