0% found this document useful (0 votes)
7 views99 pages

CpE116 CH2-Software Design

Chapter II discusses tools, standards, and constraints relevant to software design, focusing on programming languages, software development standards, and the software development lifecycle (SDLC). It covers various programming languages, including machine, assembly, and high-level languages, and outlines different SDLC methodologies like waterfall, iterative, and agile. The chapter also emphasizes the importance of standards in software development and maintenance, detailing various models and maintenance activities.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views99 pages

CpE116 CH2-Software Design

Chapter II discusses tools, standards, and constraints relevant to software design, focusing on programming languages, software development standards, and the software development lifecycle (SDLC). It covers various programming languages, including machine, assembly, and high-level languages, and outlines different SDLC methodologies like waterfall, iterative, and agile. The chapter also emphasizes the importance of standards in software development and maintenance, detailing various models and maintenance activities.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 99

CHAPTER II

RELEVANT TO TOOLS, STANDARDS AND/OR


ENGINEERING CONSTRAINTS

2.1 Computer Programs and Programming


Languages
2.1 Software Development Standards
2.3 Constraints about the Design Process
and Products
At the end of the Chapter, the students
are expected to:

· Identify the tools needed in software


design.

· Apply knowledge about the standards


guiding the software design process.

· Determine the constraints affecting


software design
Computer
Programs and
Programming
Languages
Computer Programs
and Programming
Languages
OUTLINE:
What are Programs & Programming languages
Machine Language
Assembly Language
High-Level Language
Computer Programs and
Programming Languages
What is a Program (Software)?
Set of instructions that tell a computer what to do.

We use programs to interact/talk with computers.

To write programs we use programming languages.


Computer Programs and
Programming Languages
Programming Languages
Languages used to write programs.

Computers are machines.

Programs are written in a language that a computer can

understand.
Computer Programs and
Programming Languages
Machine Language
A computer's native language.

uses zeros and ones

to add 2 and 3 and get the result: 1101101010011010

machine language is machine dependent - differs among

types of machines.
Computer Programs and
Programming Languages
Machine Language
every instruction should be written in machine language

before it can be executed.

all instructions written in other programming languages

must be translatedto machine code instructions.


Computer Programs and
Programming Languages
Assembly Language
it was developed to make programming easier.
machine dependent.
introduced keywords: add, sub,...
to add 2 and 3 and get result: add 2,3, result
a program called 'assembler' translates assembly code to
machine code.
Computer Programs and
Programming Languages
Assembler

add 2,3, result ASSEMBLER 1101101010011010

cannot be executed can be executed


Computer Programs and
Programming Languages
High-Level Language
a new generation of programming languages.
uses English words
machine independent
instructions are called 'statements'
Computer Programs and
Programming Languages
High-Level Language
a program written in a high-level language is called a
'source program' or 'source code'.
to add 2 and 3 and get result: result = 2+3;
a 'compiler' or an 'interpreter' is used to translate source
code to machine code.
Computer Programs and
Programming Languages
Compiler
translates all the source code into the machine code
SOURCE PROGRAM EXECUTABLE
Source code-COMPILER Machine Code EXECUTOR OUTPUT
Computer Programs and
Programming Languages
Interpreter
translates each statement into machine code and executes
it right away

Statement INTERPRETER OUTPUT


Software
Development
Standards
Software Development
Standards
Software Development Cycle (SDLC)
Application development refers to a software development
process used by an application developer to build application
systems. This process is commonly known as the Software
Development Lifecycle (SDLC) methodology and encompasses all
activities to develop an application system and put it into
production, including requirements gathering, analysis, design,
construction, implementation, and maintenance stages.
Examples of the SDLC methodology include e.g., waterfall,
iterative, rapid, spiral, RAD, Xtreme and many more.
Software Development
Standards
Software Development Cycle (SDLC)
Application development refers to a software development
process used by an application developer to build application
systems. This process is commonly known as the Software
Development Lifecycle (SDLC) methodology and encompasses all
activities to develop an application system and put it into
production, including requirements gathering, analysis, design,
construction, implementation, and maintenance stages.
Examples of the SDLC methodology include e.g., waterfall,
iterative, rapid, spiral, RAD, Xtreme and many more.
Software Development
Standards
PRE-DEVELOPMENT ACTIVITIES AND DELIVERABLES
Software Development
Standards
PRE-DEVELOPMENT ACTIVITIES AND DELIVERABLES
Software Development
Standards
WATERFALL MODEL DEVELOPMENT PHASES, ACTIVITIES,
AND DELIVERABLES
The System Development Life Cycle (SDLC)
model, also called the waterfall model, is
one of themost popular development
models used in the soft ware industry. The
original version of this model was first
presented by Winston Royce in 1970.
Software
Development
Standards
WATERFALL
MODEL
DEVELOPMENT
PHASES,
ACTIVITIES,
AND
DELIVERABLES
Software
Development
Standards
WATERFALL
MODEL
DEVELOPMENT
PHASES,
ACTIVITIES,
AND
DELIVERABLES
Software
Development
Standards
WATERFALL
MODEL
DEVELOPMENT
PHASES,
ACTIVITIES,
AND
DELIVERABLES
Software
Development
Standards
WATERFALL
MODEL
DEVELOPMENT
PHASES,
ACTIVITIES,
AND
DELIVERABLES
Software
Development
Standards
WATERFALL
MODEL
DEVELOPMENT
PHASES,
ACTIVITIES,
AND
DELIVERABLES
Software
Development
Standards
WATERFALL
MODEL
DEVELOPMENT
PHASES,
ACTIVITIES,
AND
DELIVERABLES
Software Development
Standards
SOFTWARE MAINTENANCE ACTIVITIES
Corrective maintenance - activities are triggered by software faults encountered during the
use of the software.

Preventive maintenance -activities involve dealing with weaknesses and vulnerabilities


identified by the development team during or aft er deploying the software and that were
not dealt with in the installed software.

Perfective maintenance activities involve dealing with requests to improve the efficiency of
the algorithms and data structures, as well as user interface interactions in the design.

Adaptive maintenance activities involve requests from software stakeholders to adapt the
software to different operating environments, user interface styles, social contexts, or new
government regulations and standards.
Software
Development
Standards

PROTOTYPED WATERFALL MODEL


A prototype is an executable
program that mainly
implements the functional
aspects of the software being
developed that are related to
the graphical user interface.
Software Development
Standards

OBJECT-ORIENTED MODEL
The model consists of four phases: the object-oriented (1)
analysis, (2) design, (3)implementation, and (4) testing

Object-oriented design consists of the identification of


classes and their interrelationships from the given
analysis model. The detailed descriptions of the methods
identified in each class are provided. A class is a template
from which an object is created.
Software
Development
Standards

INCREMENTAL
AND ITERATIVE
MODEL
Software
Development
Standards
SPIRAL MODEL
The spiral model for software
development was introduced by
Barry Boehm in 1988. The model
addresses the weaknesses of the
waterfall model with respect to
the treatment of software
development risks. The phases of
the waterfall model do not
include any reference to risk
management. Risk management is
considered an ongoing activity
that is part of the project
management activities.
Software Development
Standards
RATIONAL UNIFIED PROCESS
RUP consists of well-defined sequential phases for the iterative development of
software.
The RUP phases include:
inception - The main deliverables of the inception phase include a vision and scope
document, an initial use case model, an initial project plan, including a risk
management plan, and an initial prototype.
elaboration - The deliverables of the elaboration phase include a use case model,
non-functional requirements specifications, a revised and complete project plan,
including revised risk management plan, more accurate estimates of the cost and
time needed to complete the project, and an executable prototype.
Software Development
Standards
RATIONAL UNIFIED PROCESS
RUP consists of well-defined sequential phases for the iterative development of
software.
The RUP phases include:
construction - The deliverables of the construction phase include the soft ware
design document, the software product, and all related documentation, including
installation and user manuals.
transition - product is distributed to its intended users using the appropriate
distribution channels.
Software Development
Standards
SOFTWARE DEVELOPMENT AND MAINTENANCE TEAMS
Software Development
Standards
Standards
A standard is a repeatable, harmonized,
agreed, and documented way of doing
something. Standards contain technical
specifications or other precise criteria
designed to be used consistently as a
rule, guideline, or definition.
Software Development
Standards

SDLC set of standards and documentation


Mil-Std 498
International Standards Organization
(ISO) 9000
Capability Maturity Model (CMM)
Software Development
Standards

SDLC set of standards and documentation


Mil-Std 498
International Standards Organization
(ISO) 9000
Capability Maturity Model (CMM)
Software Development
Standards

SDLC set of standards and documentation


Mil-Std 498
International Standards Organization
(ISO) 9000
Capability Maturity Model (CMM)
Software Development
Standards
SDLC set of
standards and
documentation
Capability
Maturity
Model (CMM)
Software Development
Standards
SDLC set of
standards and
documentation
Capability
Maturity
Model (CMM)
Software Development
Standards

How do Standards work?


Adherence to standards is voluntary,
unless they are a requirement of
legislation or regulation, or are
incorporated as part of a formal contract.
Software Development
Standards

What are the Standards for?


Standards are an important way of protecting
consumers. While consumer protection is often visible
through government policies or consumer protection
organizations, standards create an extra protective
environment that lies behind the perception of most
consumers.
Software Development
Standards

How Standards are Used?


Standards are an important aspect of ensuring that
products and services are delivered in a harmonized
and consistent way while providing consumers and
users with the confidence that whatever products
and services they are using deliver to specification.
Software Development
Standards

Standard Organizations
International Organization for
Standardization (ISO)
The International Organization for Standardization
(ISO) was founded in 1947 and is headquartered in
Geneva, Switzerland.
Software Development
Standards

The American National Standards Institute


(ANSI)
The American National Standards Institute (ANSI)
The American National Standards Institute (ANSI) was
founded in 1918 and is headquartered in Washington,
D.C., with an operational office in New York City.
Software Development
Standards
The International Electrotechnical
Commission (IEC)
The International Electrotechnical Commission (IEC)
The International Electrotechnical Commission (IEC)
creates and publishes standards for electrical and
electronic technologies. It was founded in 1906 and is
headquartered in Geneva, Switzerland.
Software Development
Standards
The International Telecommunication
Union (ITU)
The International Telecommunication Union (ITU)
The International Telecommunication Union (ITU) is a
specialized agency of the United Nations. Its original
name was the International Telegraph Union, and it
was founded in Paris in 1865.
Software Development
Standards

The Institute of Electrical and Electronics


Engineers (IEEE)
The Institute of Electrical and Electronics Engineers
(IEEE) - is the most active professional organization
involved in the standardization of software-related
activities
Software Development
Standards

The Institute of Electrical and Electronics


Engineers (IEEE)
The Institute of Electrical and Electronics Engineers
(IEEE) - is the most active professional organization
involved in the standardization of software-related
activities
Software
Development
Standards
The Institute of
Electrical and
Electronics Engineers
(IEEE)
Software Development
Standards

UNIFIED MODELING LANGUAGE


The unified modeling language (UML) is a de facto
software industry standard modeling language for
visualizing, specifying, constructing, and
documenting the elements of systems in general
and software systems in particular.
Software Development
Standards

ASPECTS
Three aspects of systems can be recognized when modeling
software systems:
behavioral - static behavioral aspects, dynamic behavioral aspects
structural - static behavioral aspects, dynamic behavioral aspects
architectural - related to the deployment and distribution of
software and hardware
Software Development
Standards

VIEWS
Aspects of systems are covered by various static and dynamic
views:
use case
design
process
implementation
deployment.
Software
Development
Standards
Software Development
Standards

DIAGRAMS
A diagram contains model elements such as:
classes
objects
nodes
components
various types of relationships described by graphical
symbols
Software Development
Standards

Behavioral Modeling
The use case diagram describes the functions of the system
and its external users and defines their interfaces. This
diagram shows a number of external actors and their
connection to the use cases representing the services
provided by the system.
Software Development
Standards

Behavioral Modeling
A statechart diagram describes the possible behavior of an
object using state changes. It can also be used as a system
level diagram showing system state changes during the
operation of the system.
Software Development
Standards

Behavioral Modeling
Sequence diagrams show the interactions between a number
of objects and their time ordering.
Software Development
Standards
Behavioral Modeling
An activity diagram shows a sequential or concurrent flow from one
activity to another activity. An activity diagram consists of action
states, activity states, and transitions between them, and usually
spans more than one use case (or functionality).

Communication diagrams show the objects and the messages they


exchange. Messages are numbered to provide a time ordering of the
message.
Software Development
Standards
Behavioral Modeling
A timing diagram merges a sequence and a state diagram to
provide a timeline showing the changes of the state of an object
over time.

The interaction overview diagram is a variation of an activity


diagram in which the activities represent an interaction
diagram.
Software Development
Standards
Structural Modeling
A timing diagram merges a sequence and a state diagram to
provide a timeline showing the changes of the state of an object
over time.

The interaction overview diagram is a variation of an activity


diagram in which the activities represent an interaction
diagram.
Software Development
Standards
Architectural Modeling
Package diagrams show the packages existing in the software
and their relationships.

The deployment diagram shows the physical architecture and


distribution of the hardware and software components in the
system.
Software Development
Standards
Architectural Modeling
Package diagrams show the packages existing in the software
and their relationships.

The deployment diagram shows the physical architecture and


distribution of the hardware and software components in the
system.
Software Development
Standards
Agile Methodology
A popular development methodology is an Agile model. The premise of
the agile model is a reduced development cycle. An agile approach
consists of early and frequent software delivery, frequent
communication, continuous change, and simplicity. Agile does not
necessarily mean faster, but it does mean that the customer and work
teams see results quicker. Within agile, there are methods of work. The
most common framework is scrum, and you will also encounter Kanban,
XP (Extreme Programming), Crystal, and Lean Development. Again, agile's
goal is to reduce cost, increase collaboration and customer satisfaction.
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology

agilemanifesto.org
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology

A framework that can help teams build complex products.


Is abstract and not prescriptive.
First gained widespread popularity in 1995 when presented by Ken Schwarber and
Jeff Sutherland.

www.scrumguides.org
Software Development
Standards
Agile Methodology
Software Development
Standards
Agile Methodology
Software Development
Standards
Software Requirements
SOFTWARE ANALYSIS
The first phase of a generic software development life cycle model is the software analysis
phase.
In this phase, we concentrate on the definition of what the software under development is
supposed to do. Software analysis involves defining the scope of the software to be
developed, capturing and documenting its users’ requirements, knowing the various
constraints that have to be met, and understanding the interfaces with external systems,
entities, and users. The analysis model should be neither abstract nor constraining in
terms of forcing specific design or
implementation choices.
Software Development
Standards
PRODUCT VISION AND PROJECT SCOPE
A product vision and project scope document facilitate in establishing the
business requirements and aligning them with the software requirements
specifications (SRSs). Clear vision and scope aid in accelerating the convergence
toward more focused software requirements. The product vision provides the
business limits and focus to the project scope. A typical vision and scope
document template includes three main sections:
(1) business requirements and context,
(2) product vision, and
(3) project scope and limitations.
Software Development
Standards
PRODUCT VISION AND PROJECT SCOPE
Software Development
Standards

REQUIREMENTS ENGINEERING
Requirements development includes four main steps:
(1) Elicitation
(2) Analysis
(3) Specification
(4) Maintenance
Software Development
Standards

REQUIREMENTS ENGINEERING
Software projects fail because of errors made during the development of the software
requirements. Some of the causes for the failures include:
Lack of a formal process by which the requirements are collected or elicited
Breakdown in personal communications between the requirements stakeholders
and particularly between the client and user representatives and the analyst
Absence of a formal requirements validation process
Failure in the management of the requirements engineering processes
Ineffective use of tools to deal with requirements for large software projects
Inexperience of application domain on the requirements development team
Software Development
Standards

ELICITATION OF FUNCTIONAL REQUIREMENTS


Software Development
Standards

USE CASE MODELING


Use case diagrams (UCDs) are introduced in unified modeling language (UML) as the
primary diagram for building the use case model or viewing the system being
developed. A UCD is composed of actors, use cases, and various interrelationships
among actors and use cases.
Software Development
Standards
USE CASE SAMPLE
To illustrate the development of the use case model as part of the functional requirements, consider the following description of
the Online Publisher Storefront (OPS). The OPS is a software system developed primarily to allow buyers to place book orders
online. Buyers can be individual buyers or institutional buyers, for example, bookstore managers. Individual buyers have to supply
payment information when they place their orders. Also, if registered, and after making purchases for more than Php1000, they
have special discounts and limited credit facility. However, institutional buyers must be pre-registered and must have a good
credit standing. Buyers credit facilities and discounts are substantial. Once an order is placed, the credit of the buyer is checked by
the finance department and the order becomes active if the credit is in good standing. The order is then sent to the order
fulfillment department for processing. Once the order is placed, the buyer has 24 hours to cancel or modify the order. The order
fulfillment department is informed accordingly. When the order is placed, modified, or cancelled, the buyer is notified by an e-mail
that includes the order number in question. Once an order is fulfilled, it becomes a sale. Prior to placing an order, buyers normally
browse the OPS catalogues to search for and select books and then place them in their electronic basket. The content of the
electronic basket can be modified at any time prior to the user placing the order. Before confirming an item in the basket, the
system checks for its availability in the warehouse. Buyers can enquire about their orders using the order number. Additionally,
users can e-mail a complaint or complete a form to complain about the quality of the service or dissatisfaction with the books they
have received. The complaints are saved and dealt with by the OPS management staff. Managers and staff of OPS are registered
users with two sets of privileges. Managers can modify the book catalogues and create, delete, and modify the staff records.
Managers can also generate monthly reports for online sales. Registered users can enquire about their orders, view their
purchasing history, and change their personal information.
Software Development
Standards
USE CASE MODELING
Software Development
Standards
USE CASE MODELING
Software Development
Standards

What Are Constraints?


Constraints are conditions that must be met
Constraints about the
Design Process and
Products
What Are Design Constraints?
Design constraints are conditions that need to happen for a
project to be successful. Design constraints help narrow choices
when creating a project.
Constraints about the
Design Process and
Products
What Are Design Constraints?

Safety

Cost

Available Resources

Environmental Impact
END OF CHAPTER 2

GET READY FOR THE


NEXT CHAPTER!
ENJOY LEARNING!

You might also like