Software
Software
Software Engineering - is an engineering discipline that is concerned with all aspects of software production.
Software Engineering - concerned with the practicalities f developing and delivering useful software.
System Engineering – System engineering is concerned with all aspects of computer-based systems development
including Hardware, Software and Process engineering.
Generic Products - Stand-alone systems that are marketed and sold to any customer who wishes to buy them.
Customized Products – Software that is commissioned by a specific customer to meet their own needs.
MAINTAINABILITY- Software should be written in such a way so that it can evolve to meet the changing needs of
customers.
EFFICIENCY - Software should not make wasteful use of system resources such as memory and processor cycles.
DEPENDABILITY AND SECURITY- Software dependability includes a range of characteristics Including reliability,
security and safety.
ACCEPTABILITY - Software must be acceptable o the type of users for which it is designed.
Software SPECIFICATION - where customers and engineers define The software that is to be produced and the
constraints on its Operation.
Software VALIDATION - where the software is checked to ensure That it is what the customer requires.
Software EVOLUTION - where the software is modified to reflect Changing customer and market requirements.
BUSINESS AND SOCIAL CHANGE – changing incredibly quickly as emerging economies develop
SECURITY AND TRUST - As software is intertwined with all aspects of our lives,
APPLICATION TYPES
Stand-alone applications - These are application systems that run on a local computer
Embedded control systems - These are software control systems that control
Batch processing systems - These are business systems that are designed to process data
Entertainment systems - These are systems that are primarily for personal use
Systems for modeling and simulation - These are systems that are developed by scientists and engineers
Data collection systems - These are systems that collect data from their environment using a set of sensors
Systems of systems - These are systems that are composed of a number of other software systems.
The Web - is now a platform for running application and Organizations are increasingly developing web-based
systems Rather than local systems.
Cloud computing - is an approach to the provision of computer services where applications run remotely on the
‘cloud’.
Software reuse - Software reuse is the dominant approach for constructing web-based systems.
Incremental and agile development - Web-based systems should be developed and delivered incrementally
Confidentiality - Engineers should normally respect the confidentiality of their Employers or clients
Intellectual property rights - Engineers should be aware of local laws governing the use of
PREAMBLE - The short version of the code summarizes aspirations at a high level of the abstraction; The
clauses that are included in the full version give examples and details of how these Aspirations change the
way we act as software engineering professionals
ETHICAL PRINCIPLES
PUBLIC - Software engineers shall act consistently with the public interest.
CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and
employer consistent with the public interest.
PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest
professional standards possible.
JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to
the management of software development and maintenance.
PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the
public interest.
SELF - Software engineers shall participate in lifelong learning regarding the practice
Software Process Model - is an abstract representation of a process.
Design and implementation – defining the organization of the system and implementing the system;
Plan-driven processes - are processes where all of the process activities are planned in advance and progress is
measured against this plan.
Agile Processes - planning is incremental and it is easier to Change the process to reflect changing customer
requirements.
Waterfall Model Plan-driven model - Separate and distinct phases of specification and development.
Incremental Development - Specification, development and validation are interleaved. May be plan-driven or
agile.
Integration and Configuration - The system is assembled from existing configurable components.