chapter 1 Flashcards
what is software engineering?
analyzing problems and creating software solutions.
analysis: decomposing problems into smaller pieces.
synthesis: compose software from smaller building blocks.
also: a discipline that uses computer and software technology as tools.
system development: method
a formal set of steps for producing a product. (sdlc)
system development: tool
instrument or system to accomplish a task in a better way
system development: procedure
a recipe. a combination of tools and techniques to produce a product.
system development: paradigm
philosophy or approach to building a product (oop)
computer science
computer hardware, compilers, os, programming languages; mainly theoretical.
software engineering vs computer science
use of computer science (theories and whatnot), to create software solutions to problems.
fault
human errors
failure of a system
system does not meet requirements
safety-critical
failure that poses a threat to life or health
what is quality
quality of the product
quality of the process
quality of the product in context of the business enviro.
context of business quality
return on investment (quantified quality as a number)
quality of the process
protocol to ensure quality. example: iso 9000.
quality of the product
meets the requirements of the stakeholders.
who does software engineering
customer (clients), developer, and user
elements of a system
activities, objects, relationships, and system boundaries.
elements of a system: activities
an event (actions). eg: a person breathing.
elements of a system: objects
elements involved in the activity.
eg: the oxygen a person breaths.
elements of a system: relationships
interaction between activities and objects.
eg: breathing takes in air which contains oxygen.
elements of a system: system boundaries
origin of the input and destination of the output.
eg: the respiratory system of a human.
interrelated system
a complex or large system that contains sub-systems.
steps of building a system
- requirement analysis
- system design
- program design
- program writing
- unit testing
- integration testing (putting objects together)
- system testing (all objects placed together)
- system delivery (training users)
- maintenance
user interface prototyping
a small version of the system.
- used to identify key requirements
- demonstrates feasibility
- develops good user interface
software architecture
System is described in a set of architectural units.
eg: oop.