Software Engineering
General process models
waterfall model, incremental development, and reuse-oriented development.
Requirements for a software system set out
what the system should do and define constraints on its operation and implementation.
Requirements management
Business, organizational, and technical changes inevitably lead to changes to the requirements for a software system. ______ is the process of managing and controlling these changes.
What is the difference between software engineering and computer science ?
Computer Science focus on theory and fundamentals; software engineering is concerned with the practicalities of developing useful software.
What are the attriures of good software?
Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.
What is software engineering?
Software engineering is an engineering discipline that is concerned with all aspects of software production.
What are the fundamental software engineering activities?
Software engineering, development, validation and evolution.
Whats the difference between software engineering and system engineering?
System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process.
The requirements engineering process includes
a feasibility study, requirements elicitation and analysis, requirements specification, requirements validation, and requirements management.
I The Scrum method is an agile method that provides
a project management framework.
Extreme programming is a well-known agile method that integrates
a range of good programming practices such as frequent releases of the software, continuous software improvement, and customer participation in the development team.
model
abstract view of a system
The software requirements document is an
agreed statement of the system requirements. It should be organized so that both system customers and software developers can use it.
What is software?
computer programs and associated documentation.
A behavioral perspective
dynamic behavior of the system and how it responds to events.
Different types of software applications
embedded systems, batch systems that the bank uses, entertainment systems, and data collection as well.
Models of the new system are used during requirements engineering to
explain the proposed requirements to other system stakeholders. Engineers use these models to discuss design proposals and to document the system for implementation.
Context models
how a system is being modeled is positioned in an environment with other systems and processes.
Model-driven engineering
is an approach to software development in which a system is represented as a set of models that can be automatically transformed to executable code.
Software engineering
is an engineering discipline that is concerned with all aspects of software production.
Requirements elicitation and analysis
is an iterative process that can be represented as a spiral of activities—requirements discovery, requirements classification and organization, requirements negotiation, and requirements documentation.
Software
is not just a program or programs but also includes documentation.
Software validation
is the process of checking that the system conforms to its specification and that it meets the real needs of the users of the system.
Requirements validation
is the process of checking the requirements for validity, consistency, completeness, realism, and verifiability
Requirements engineering
is the process of developing a software specification.
Essential software product attributes are
maintainability, dependability, security, efficiency, and acceptability.
The fundamental ideas of software engineering are applicable to all types of software systems. These fundamentals include
managed software processes, software dependability and security, requirements engineering, and software reuse.
Social and organisational concerns
may affect the decision on where to position system boundaries.
Activity diagrams
model the processing of data.
Professional societies publish codes of conduct that set out
of behavior expected of their members.
Non-functional requirements
often constrain the system being developed and the development process being used. These might be product requirements, organizational requirements, or external requirements. They often relate to the emergent properties of the system and therefore apply to the system as a whole.
Design and implementation
processes are concerned with transforming a requirements specification into an executable software system.
A structural perspective
show organization and architecture of a system.
Architectural models
show the system and its relationship with other systems.
The fundamental notions of software engineering are universally applicable to all types of system development. These fundamentals include
software processes, dependability, security, requirements, and reuse.
The software process includes all of the activities involved in software development. The high- level activities of
specification, development, validation, and evolution are part of all software processes.
Functional requirements
statements of the services that the system must provide or are descriptions of how some computations must be carried out.
Software evolution
takes place when you change existing software systems to meet new requirements. Changes are continuous and the software must evolve to remain useful.
Agile methods are incremental development methods
that focus on rapid development, frequent releases of the software, reducing process overheads, and producing high-quality code. They involve the customer directly in the development process.
An external perspective
where you model the context or environment of the system.
An interaction perspective
where you model the interactions between a system and its environment, or between the components of a system.
State diagrams
which show how the system reacts to internal and external events.
Sequence diagrams
which show interactions between actors and the system and between system components.
Use case diagrams
which show interactions between actors and the system.
Class diagrams
which show the object classes in the system and the associations between these classes.