Design Engineering

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

1.**DESIGN ENGINEERING: Allocation of functional responsibilities to units.

Software Design is the process to transform the user User interfaces Unit states and state changes
requirements into some suitable form, which helps Data and control interaction between units
the programmer in software coding and 2.****Software Design Concepts:
implementation. During the software design phase, Concepts are defined as a principal idea or invention
the design document is produced, based on the that comes into our mind or in thought to
customer requirements as documented in the SRS understand something.
document. The software design concept simply means the idea
Objectives of Software Design: or principle behind the design. It describes how you
1. Correctness: A good design should be correct i.e. it plan to solve the problem of designing software, the
should correctly implement all the functionalities of logic, or thinking behind how you will design
the system. software.
2. Efficiency: A good software design should address It allows the software engineer to create the model of
the resources, time, and cost optimization issues. the system or software or product that is to be
3. Understandability: A good design should be easily developed or built. The software design concept
understandable, for which it should be modular and provides a supporting and essential structure or
all the modules are arranged in layers. model for d
4. Completeness: The design should have all the
components like data structures, modules, and
external interfaces, etc.
SOFTWARE DESIGN PROCESS:
The software design process can be divided into the
following three levels of phases of design:
1. Interface Design
2. Architectural Design
3. Detailed Design
Interface Design: Interface design is the specification
of the interaction between a system and its
environment. this phase proceeds at a high level of
abstraction with respect to the inner workings of the
system i.e, during interface design
Interface design should include the following details: The following points should be considered while
Precise description of events in the environment, designing Software:
or messages from agents to which the system must Abstraction- hide Irrelevant data Abstraction simply
respond. means to hide the details to reduce complexity and
Precise description of the events or messages that increases efficiency or quality. Different levels of
the system must produce. Abstraction are necessary and must be applied at
Architectural Design: Architectural design is the each stage of the design process so that any error
specification of the major components of a system, that is present can be removed to increase the
their responsibilities, properties, interfaces, and the efficiency of the software solution and to refine the
relationships and interactions between them. In software solution.
architectural design, the overall structure of the Modularity- subdivide the system Modularity simply
system is chosen, but the internal details of major means dividing the system or project into smaller
components are ignored. parts to reduce the complexity of the system or
Issues in architectural design includes: project. In the same way, modularity in design
Gross decomposition of the systems into major means subdividing a system into smaller parts so
components. that these parts can be created independently and
Allocation of functional responsibilities to then use these parts in different systems to perform
components. different functions.
Component Interfaces Architecture- design a structure of something
Detailed Design: Design is the specification of the Architecture simply means a technique to design a
internal elements of all major system components, structure of something. Architecture in designing
their properties, relationships, processing, and often software is a concept that focuses on various
their algorithms and the data structures. elements and the data of the structure. These
The detailed design may include: components interact with each other and use the
Decomposition of major system components into data of the structure in architecture.
program units.
Refinement- removes impurities Refinement simply
means to refine something to remove any impurities
if present and increase the quality. Refinement is
very necessary to find out any error if present and
then to reduce it.
Pattern- a repeated form The pattern simply means
a repeated form or design in which the same shape is
repeated several times to form a pattern. The pattern
in the design process means the repetition of a
solution to a common recurring problem within a
certain context.
Information Hiding- hide the information
Information hiding simply means to hide the
2.Data flow architectures:
information so that it cannot be accessed by an This kind of architecture is used when input data
unwanted party. to be transformed into output data through a series
Refactoring- reconstruct something Refactoring
of computational manipulative components.
simply means reconstructing something in such a
The figure represents pipe-and-filter architecture
way that it does not affect the behavior of any other
since it uses both pipe and filter and it has a set of
features. Refactoring in software design means
components called filters connected by pipes.
reconstructing the design to reduce complexity and
Pipes are used to transmit data from one
simplify it without affecting the behavior or its
component to the next.
functions.
Each filter will work independently and is
3.*****Architectural Design: designed to take data input of a certain form and
The software needs the architectural design to produces data output to the next filter of a specified
represents the design of software. IEEE defines form.
architectural design as “the process of defining a 3.Call and Return architectures: It is used to create a
collection of hardware and software components and program that is easy to scale and modify. Many sub-
their interfaces to establish the framework for the styles exist within this category. Two of them are
development of a computer system. The software explained below.
that is built for computer-based systems can exhibit Remote procedure call architecture: This
one of these many architectural styles. components is used to present in a main program or
Each style will describe a system category that sub program architecture distributed among
consists of : multiple computers on a network.
A set of components(eg: a database, computational Main program or Subprogram architectures: The
modules) that will perform a function required by main program structure decomposes into number of
the system. subprograms or function into a control hierarchy.
The set of connectors will help in coordination, Main program contains number of subprograms that
communication, and cooperation between the can invoke other components.
components.
Conditions that how components can be integrated
to form the system.
Taxonomy of Architectural styles:
1.Data centred architectures:
A data store will reside at the center of this
architecture and is accessed frequently by the other
components that update, add, delete or modify the
data present within the store. 4.Object Oriented architecture: The components of a
This data-centered architecture will promote system encapsulate data and the operations that
integrability. This means that the existing must be applied to manipulate the data. The
components can be changed and new client coordination and communication between the
components can be added to the architecture without components are established via the message passing.
the permission or concern of other clients. 5.Layered architecture:
Data can be passed among clients using A number of different layers are defined with each
blackboard mechanism. layer performing a well-defined set of operations.
Each layer will do some operations that becomes
closer to machine instruction set progressively.
Intermediate layers to utility services and
application software functions.
4.******COMPONENT LEVEL DESIGN: Module coupling is categorized into the following
Component level design is the definition and design types.
of components and modules after the architectural 1. No direct coupling: Two modules are said to be ‘no
design phase. Component-level design defines the direct coupled’ if they are independent of each other.
data structures, algorithms, interface characteristics, 2. Data coupling: Two modules are said to be ‘data
and communication mechanisms allocated to each coupled’ if they use parameter list to pass data items
component for the system development. for communication.
According to OMG UML specification component is 3. Stamp coupling: Two modules are said to be
expressed as, “A modular, deployable, and ‘stamp coupled’ if they communicate by passing a
replaceable part of a system that encapsulates data structure that stores additional information
implementation and exposes a set of interfaces.” than what is required to perform their functions.
Component Views • OO View – A component is a set 4. Content coupling: Two modules are said to be
of collaborating classes. • Conventional View – A ‘content coupled’ if one module modifies data of
component is a functional element of a program that some other module or one module is under the
incorporates processing logic, the internal data control of another module or one module branches
structures required to implement the processing into the middle of another module.
logic. *DESIGN PRINCIPLES: The design Cohesion
principles for component level design comprises of Cohesion measures the relative functional strength of
the following: Design by Contract Open-Closed a module. It represents the strength of bond between
Principle Subtype Substitution Depend on the internal elements of the modules.
Abstractions Interface Segregation Various types of cohesion are listed below.
The component-level design can be represented by 1. Functional cohesion: In this, the elements within
using different approaches. One approach is to use a the modules are concerned with the execution of a
programming language while other is to use some single function.
intermediate design notation such as graphical (DFD, 2. Sequential cohesion: In this, the elements within
flowchart, or structure chart) *The modular design the modules are involved in activities in such a way
of the software should exhibit the following sets of that the output from one activity becomes the input
properties. *Provide simple interface: Simple interfaces for the next activity.
decrease the number of interactions. Note that the number 3. Communicational cohesion: In this, the elements
of interactions is taken into account while determining within the modules perform different functions, yet
whether the software performs the desired function. each function references the same input or output
Simple interfaces also provide support for reusability of information.
components which reduces the cost to a greater extent. 4. Procedural cohesion: In this, the elements within
*Ensure information hiding: The benefits of the modules are involved in different and possibly
modularity cannot be achieved merely by unrelated activities.
decomposing a program into several modules; rather 5.******Component-Level Design Views
each module should be designed and developed in There are three main views of component-level
such a way that the information hiding is ensured design:
Modularity has become an accepted approach in 1. The object-oriented view/class based component
every engineering discipline. With the introduction
level design
of modular design, complexity of software design has
2. The conventional view
considerably reduced Functional Independence
Each has its own elements and characteristics. These
Functional independence is the refined form of the
will be discussed in detail here.
design concepts of modularity, abstraction, and
Object-Oriented View
information hiding. Functional independence is
In the object-oriented view, a component contains a
achieved by developing a module in such a way that
set of collaborating classes. As a quick reminder,
it uniquely performs given sets of function without
classes are groups of objects with common
interacting with other parts of the system. The
properties, operations, and relationships to other
software that uses the property of functional
objects and meanings.
independence is easier to develop because its
These include, for example, people, physical things,
functions can be categorized in a systematic manner
or locations. Design classes are classes within the
Coupling
context of the software itself. Analysis and design
Coupling measures the degree of interdependence
classes are mentioned here because the object-
among the modules. Several factors like interface
oriented view explains both types of class to identify
complexity, type of data that pass across the
all their operations and attributes, as well as the
interface, type of communication, number of
interfaces that enable classes to communicate and
interfaces per module, etc
collaborate.
2. Conventional View SE tools provide automated or semi-automated
In the conventional view of component-level design, support for the "Process" and the "Methods".
the component is considered a functional element of Tools are integrated so that information created by
the software that integrates the processing logic and one tool can be used by another
necessary internal data structures to perform its task
1. SOFTWARE MYTHS
Widely held but false view Propagate
misinformation and confusion Three types of myth
Management myth
Customer myth
Practitioner’s myth 3. The Capability Maturity Model
MANAGEMENT MYTHS Myth(1) -The available Integration (CMMI)
standards and procedures for software are enough. CMM was developed by the Software Engineering
Myth(2) -Each organization feel that they have Institute (SEI) at Carnegie Mellon University in
state-of-art software development tools since they 1987.
have latest computer. Myth(3) -Adding more
It is not a software process model. It is a
programmers when the work is behind schedule
can catch up. Myth(4) -Outsourcing the software framework which is used to analyse the approach
project to third party, we can relax and let that and techniques followed by any organization to
party build it. develop a software product.
CUSTOMER MYTH Myth(1) - General statement It also provides guidelines to further enhance the
of objective is enough to begin writing programs, maturity of those software products.
the details can be filled in later. Myth(2) -Software It is based on profound feedback and development
is easy to change because software is flexible.
practices adopted by the most successful
PRACTITIONER’S MYTH Myth(1) -Once the
program is written, the job has been done. Myth(2) organizations worldwide.
-Until the program is running, there is no way of This model describes a strategy that should be
assessing the quality. followed by moving through 5 different levels.
Myth(3) -The only deliverable work product is the Each level of maturity shows a process capability
working program Myth(4) -Software Engineering level. All the levels except level-1 are further
creates voluminous and unnecessary
described by Key Process Areas (KPA’s).
documentation and invariably slows down software
development. 4. REQUIRMENT ENGINEERING
2. Layered Technology The process of establishing the services that the
Divided into 4 layers:- customer requires from a system and the constraints
1. A quality Process:- under which it operates and is developed. The
Any engineering approach must rest on an quality. requirements themselves are the descriptions of the
The "Bed Rock" that supports software Engineering system services and constraints that are generated
is Quality Focus. during the requirements engineering process.
2. Process:- Requirements engineering tasks: -
Foundation for SE is the Process Layer Inception Elicitation Elaboration
SE process is the GLUE that holds all the technology Negotiation Specification Validation
layers together and enables the timely development Requirements Management
of computer software. Inception Task
It forms the base for management control of During inception, the requirements engineer asks a
software project. set of questions to establish…
3. Methods:- • A basic understanding of the problem • The people
SE methods provide the "Technical Questions" for who want a solution • The nature of the solution that
building Software. is desired
• The effectiveness of preliminary communication
Methods contain a broad array of tasks that include
and collaboration between the customer and the
communication requirement analysis, design
developer
modeling, program construction testing and support.
• Through these questions, the requirements
4. Tools:-
engineer needs to… • Identify the stakeholders,
Recognize multiple viewpoints, Work toward to assess the impact of each requirement on project
collaboration (give and take policy), Initiate the cost and delivery time • Using an iterative approach,
communication. requirements are eliminated, combined and/or
Eliciting Task modified so that each party achieves some measure
Eliciting requirements is difficult because of • of satisfaction.
Problems of scope in identifying the boundaries of Validation Task
the system or specifying too much technical detail During validation, the work products produced as a
rather than overall system objectives
result of requirements engineering are assessed for
Problems of understanding what is wanted, what the
quality.
problem domain is, and what the computing
Requirements
environment can handle (Information that is
Is each requirement consistent with the overall
believed to be "obvious" is often omitted) • Problems
objective for the system/product? • Have all
of volatility because the requirements change over
requirements been specified at the proper level?
time.
That is, do some requirements provide a level of
Elicitation may be accomplished through two
technical detail that is inappropriate at this stage? •
activities
Is each requirement unambiguous? • Does each
• Collaborative requirements gathering
requirement have attribution? That is, is a source
• Quality function deployment
(generally, a specific individual) noted for each
Elaboration Task
requirement?
During elaboration, the software engineer takes the
Requirements Management Task
information obtained during inception and
During requirements management, the project team
elicitation and begins to expand and refine it • performs a set of activities to identify, control, and
Elaboration focuses on developing a refined technical track requirements and changes to the requirements
model of software functions, features, and at any time as the project proceeds • Each
constraints requirement is assigned a unique identifier • The
• It is an analysis modelling task requirements are then placed into one or more
• Use cases are developed, Domain classes are traceability tables • These tables may be stored in a
database that relate features, sources, dependencies,
identified along with their attributes and
subsystems, and interfaces to the requirements • A
relationships, State machine diagrams are used to requirements traceability table is also placed at the
capture the life on an object end of the software requirements specification.
• The end result is an analysis model that defines the Requirement Engineering Process
functional, informational, and behavioural model of It is a four-step process, which includes -
the problem. 1. Feasibility Study
Developing Use Cases 2. Requirement Elicitation and Analysis
Step One – Define the set of actors that will be 3. Software Requirement Specification
4. Software Requirement Validation
involved in the story • Actors are people, devices, or
5. Software Requirement Management
other systems that use the system or product within
the context of the function and behaviour that is to
be described • Actors are anything that communicate
with the system or product and that are external to
the system itself.
Step Two – Develop use cases, where each one
answers a set of questions.
Negotiation Task
During negotiation, the software engineer
reconciles the conflicts between what the customer
wants and what can be achieved given limited 5. RISK MANAGEMENT
business resources • Requirements are ranked (i.e.,
prioritized) by the customers, users, and other RISK MANAGEMENT
stakeholders • Risks associated with each Risk analysis and management are actions that help
requirement are identified and analyzed • Rough a software team to understand and manage
guesses of development effort are made and uncertainty. Many problems can plague a software
project. Regardless of outcome, it’s a really good Product-specific risks: can be identified by those
idea to identify the risk, asses its probability of with a clear understanding of technology, the people
occurrence and estimate its impact. and the environment specific for building the
RISK STRATEGIES project.
It is divided into 2 types they are 1.Reactive risk RISK PROJECTION
strategy 2.Proactive risk strategy Attempts to rate each risk in two ways:
REACTIVE RISK STRATEGY: i. Probability that the risk is real.
Monitors the project for likely risks. ii. Consequences of the problems associated with the
Resources are set aside to deal with risks when they risk. There are four risk projection steps intended to
become actual problem. consider risks in a manner that leads to
Software team does nothing about risks until prioritization.
something goes wrong .Then, the team attempts to Estimate a scale that reflects the perceived
correct the problem, this is often called a fire fighting probability of a risk.
mode. Delineate the consequences of the risk.
When team fails to solve the problem,”Crisis Estimate the impact of the risk on project and
management “takes over and the project is in real product.
jeopardy. Asses the overall accuracy of the risk projection.
PROACTIVE RISK STRATEGY: RISK REFINEMENT
Better than reactive risk strategy. During early stages of project planning, a risk may
Begins long before technical work is initiated. be stated quite generally. As time passes and more is
Potential risks are identified; their probability and learned about risk, it may be possible to refine the
impacts are assessed and ranked by importance. risk into a set of more detailed risks each somewhere
Software team establishes a plan for managing risks. easy to monitor and manage.
As all the risks cannot be avoided, the team works One way to do this is to represent the risk in
to develop a contingency plan that will enable it to Condition Transition Consequence format:
respond in a controlled and effective manner. Given that<condition>then there is concern that
((possssiiblly))<consequence>..
Refinement helps to isolate the underlying risks
and lead to easier analysis and response.
RISK MITIGATION
If a software team adopts a proactive approach to
risk, avoidance is best strategy, achieved by
developing a plan for mitigation.
For ex, assume that high staff turnover is noted as a
project risk r1.Based on past history and
management intuition, the likelihood l1 of high
Types of Risks turnover is estimated to be 0.70 and the impact x1 is
Project risk Technical risk Business risk produced as critical. i.e. high turnover will have a
Known risks Predictable risks critical impact on project cost and schedule.
Unpredictable risk To mitigate this risk, you would develop a strategy
RISK IDENTIFICATION for reducing turnover.
RISK MONITORING
Systematic attempt to specify threats to the project
After risk mitigation, risk monitoring activity
plan.
commence.
Predictable and known risks can be avoided and
The project manager monitors the factors that
controlled possibly by identification.
may provide an indication of whether the risk is
There are two types of risks for each categorized
becoming more or less likely.
risk:
e.g. In case of high staff turnover, the general
Generic risks: potential threat to every software
project. attitude of team members based on project pressures
,interpersonal relationships among team members,
potential problems with compensation and benefits,
availability of jobs within the company and outside which the various ISO standards apply are as
the company is monitored follows.
Project manager should also monitor the 1. ISO 9001: This standard applies to the
organizations engaged in design, development,
effectiveness of risk mitigation steps.
production, and servicing of goods. This is the
Project manager should monitor work products standard that applies to most software development
carefully to ensure that each can stand on its own. organizations.
The RMMM Plan
An effective risk strategy must consider three issues: 2. ISO 9002: This standard applies to those
Risk avoidance organizations which do not design products but are
Risk monitoring only involved in the production. Examples of these
Risk management category industries contain steel and car
manufacturing industries that buy the product and
6.)Software Reliability
plants designs from external sources and are engaged
Software Reliability means Operational reliability. It
in only manufacturing those products. Therefore,
is described as the ability of a system or component
ISO 9002 does not apply to software development
to perform its required functions under static
organizations.
conditions for a specific period.
Software reliability is also defined as the probability 3. ISO 9003: This standard applies to organizations
that a software system fulfills its assigned task in a that are involved only in the installation and testing
given environment for a predefined number of input of the products. For example, Gas companies.
cases, assuming that the hardware and the input are 8.)SDLC - Waterfall Model
free of error. The Waterfall Model was the first Process Model to
Software Reliability is an essential connect of be introduced. It is also referred to as a linear-
software quality, composed with functionality, sequential life cycle model. It is very simple to use.
usability, performance, serviceability, capability, In "The Waterfall" approach, the whole process of
installability, maintainability, and documentation. software development is divided into separate
Software Reliability is hard to achieve because the phases. i)Requirement Gathering and analysis
complexity of software turn to be high. While any 2.System Design. 3. implementation 4. Integration
system with a high degree of complexity, containing and Testing 5. Deployment of system 6.
software, will be hard to reach a certain level of Maintainance
reliability, system developers tend to push *******SDLC V-Model: The V-model is a type of
complexity into the software layer, with the speedy SDLC model where process executes in a sequential
growth of system size and ease of doing so by manner in V-shape. It is also known as Verification
upgrading the software. and Validation model. It is based on the association
7.)ISO 9000 Quality Standards of a testing phase for each corresponding
Quality assurance systems are defined as the development stage. Development of each step directly
organizational structure, responsibilities, associated with the testing phase.
procedures, processes, and resources for Verification Validation Design Phase: Testing Phase:
implementing quality management. ******SDLC - Agile Model: Agile SDLC model is a
ISO 9000 describes the quality elements that must be combination of iterative and incremental process
present for a quality assurance system to be models. .
compliant with the standard, but it does not describe Agile Methods break the product into small
how an organization should implement these incremental builds. These builds are provided in
elements. iterations. Each iteration typically lasts from about
ISO 9001:2000 is the quality standard that contains one to three weeks.
20 requirements that must be present in an effective ****SDLC - Spiral Model:Spiral model is one of the
software quality assurance system. most important Software Development Life Cycle
Types of ISO 9000 Quality Standards models, which provides support for Risk Handling.
In its diagrammatic representation, it looks like a
spiral with many loops.
The exact number of loops of the spiral is unknown
and can vary from project to project.
Each loop of the spiral is called a Phase of the
software development process
The ISO 9000 series of standards is based on the *****Software Engineering Practice
assumption that if a proper stage is followed for Practice is a broad array of concepts, principles,
production, then good quality products are bound to methods, and tools that you must consider as
follow automatically. The types of industries to software is planned and developed.
George Polya, in a book written in 1945 (!), describes Analysis models represent the customer requirements
the essence of software engineering practice … by depicting the S/W in three different domains: the
1. Understand the problem (communication and information domain, the functional domain, and the
analysis). behavioral domain.
2. Plan a solution (modeling and software design). Design models represent characteristics of the S/W
*****Communication Practices that help practitioners to construct it effectively: the
Before customer requirements can be analyzed, architecture, the user interface, and component-level
modeled, or specified they must be gathered through detail.
a communication (also called requirement elicitation) Analysis Modeling Principles
activity. The information domain of a problem must be
Effective communication is among the most represented and understood:
challenging activities that confront a S/W engineer. Analysis model uses “DATA FLOW DIAGRAM” to
the following are communication principles and show information domain which includes following
concepts that apply to customer communication: detail input flow into system, output flow in system
Listen: focus on the speaker’s words. Be a polite Represent software functions
listener. Represent software behavior. The behavior of the
Prepare before you communicate: Spend the time to S/W is driven by the interaction with the external
understand the problem before you meet with others environment.
“research”. The analysis task should move from essential
Someone should facilitate the communication activity. information toward implementation detail. Analysis
Have a leader “moderator” to keep the conversation begins by describing the problem from the end-user
moving in a productive direction. perspective.
Face-to-face communication is best. Design Modeling Principles.
Take notes and document decisions. The software design model is the equivalent of an
Stay focused, modularize your discussion. The architect’s plans for a house
facilitator should keep the conversation modular; Design must be traceable to the analysis model
leaving one topic only after it has been resolved. The design model translates this information into an
Draw pictures when things are unclear. architecture.
Negotiation is not a contest or a game. It works best Always consider architecture. S/W architecture is the
when both parties win. skeleton of the system to be built.
******Planning Practices Focus on the design of data as it is as important as a
The planning activity encompasses a set of design. Data design is an essential element of t
management and technical practices that enable the architectural design.
S/W team to define a road map as it travels toward Component-level design should exhibit functional
its strategic goal and tactical objectives. independence. The functionality that is delivered by
the following principles always apply: a component should be cohesive- that is, it should
Understand the project scope. Scope provides the S/W focus on one and only one function.
team with a destination. The design model should be developed iteratively.
Involve the customer (and other stakeholders) in the With each iteration, the designer should strive for
planning activity. S/W engineers must often negotiate greater simplicity.
order of delivery, timelines, and other related issues. ******Construction Practices
Recognize that planning is iterative. A plan must be Construction is defined as being composed of both
adjusted to accommodate changes. coding and testing.
Estimate based on what you know. The intent of Coding Principles and Concepts
estimation is to provide an indication of effort, cost, Preparation Principles: Before writing one line of
and task duration, based on the team’s current code, be sure of:
understanding of the work to be done. 1. Understand the problem you are trying to solve.
Be realistic. Even the best S/W engineers make
2. Understand the basic design principles.
mistakes.
Pick a programming language that meets the needs
Adjust granularity as you plan.
of the S/W to be built and the environment in which
Define how quality will be achieved.
it will operate.
Define how you’ll accommodate changes
Coding Principles: As you begin writing code, be
******Modeling Practices
sure you
The process of developing analysis and design
1. Constrain your algorithm by following structured
models is described in this section.
programming practice.
In S/W Eng. work, two models are created: analysis
2. Select the proper data structure.
models and design models.
3. Understand the software architecture.
4. Keep conditional logic as simple as possible. architectures. The infrastructure encompasses the
5. Create easily tested nested loops. h/w and s/w that are used to support the applications
Validation Principles: After you’ve completed your and data
first coding pass, be sure you *******Product Engineering
1. Conduct a code walkthrough. software engineers participate in all levels of the
2. Perform unit test and correct errors. product engineering process that begins with
3. Refactor the code. requirements engineering. The analysis step maps
Testing Principles requirements into representations of data, function,
Testing is a process of executing a program with and behavior
the intent of finding errors. *****System Modeling:
A good test is one that has a high probability of System Modelling is the process of developing
finding an as-yet undiscovered error. abstract models of a system with model presenting a
A successful test is one that uncovers an as-yet- different view or perspective of that system. or A
undiscovered error. System Model represent aspects of a system and its
*******Deployment Practices environment. or System Modelling is a mean of
Customer Expectations for the software must be representing a world view a detailed view of the
managed. “Don’t promise more than you can system using same kind of Graphical Notation.
deliver.” System modeling has now come to mean representing
A complete delivery package should be assembled a system using some kind of graphical notation,
and tested. which is now almost always based on notations in the
Buggy software should be fixed first, delivered later Unified Modeling Language (UML).
******System Engineering Hierarchy • System modelling helps the analyst to understand
The key to system engineering is a clear the functionality of the system and models are used
understanding of context. For software development to communicate with customers.
this means creating a "world view" and Activity diagrams, which show the activities involved
progressively narrowing its focus until all technical in a process or in data processing . • Use case
detail is known. diagrams, which show the interactions between a
The system eng. Process usually begins with a “world system and its environment.
view.” The entire business or product domain is • Sequence diagrams, which show interactions
examined to ensure that the proper business or between actors and the system and between system
technology context can be established. components.
The world view is refined to focus more fully on a • Class diagrams, which show the object classes in
specific domain of interest. the system and the associations between these classes.
Finally, the analysis, design, and construction of a • State diagrams, which show how the system reacts
targeted system element are initiated. to internal and external events.
******Business Process Engineering 10.) Software Process Framework
The goal of Business Process Engineering (BPE) is to Framework is a Standard way to build and deploy
define architectures that will enable a business to use applications.
information effectively. Software Process Framework is a foundation of
BPE is one process for creating an overall plan for complete software engineering process. Software
implementing the computing architecture. process framework includes all set of umbrella
Three different architectures must be analyzed and activities. It also includes number of framework
designed within the context of business objectives activities that are applicable to all software projects.
and goals: A generic process framework encompasses five
Data architecture activities which are given below one by one:
Application architecture 1. Communication: In this activity, heavy
Technology infrastructure communication with customers and other
The data architecture provides a framework for the stakeholders, requirement gathering is done.
information needs of a business. The building blocks 2. Planning: In this activity, we discuss the technical
of the architecture are the data objects that are used related tasks, work schedule, risks, required
by the business. A relationship indicates how objects resources etc.
are connected to one another.
The application architecture encompasses those 3. Modeling: Modelling is about building
elements of a system that transform objects within representations of things in the ‘real world’.In
the data architecture for some business purpose. modelling activity, a product’s model is created in
The technology infrastructure provides the order to better understanding and requirements.
foundation for the data and application
Graphical User Interface
Command Line Interface: Command Line Interface
provides a command prompt, where the user types
the command and feeds to the system. The user
needs to remember the syntax of the command and
its use.
Graphical User Interface: Graphical User Interface
provides the simple interactive interface to interact
with the system. GUI can be a combination of both
hardware and software. Using GUI, user interprets
the software.
GOLDEN RULES:
The following are the golden rules stated by Theo
Mandel that must be followed during the design of
the interface.
Place the user in control:
Define the interaction modes in such a way that
4. Construction: In software engineering, does not force the user into unnecessary or undesired
construction is the application of set of procedures actions: The user should be able to easily enter and
that are needed to assemble the product. In this exit the mode with little or no effort.
activity, we generate the code and test the product in Provide for flexible interaction: Different people
order to make better product. will use different interaction mechanisms, some
5. Deployment: In this activity, a complete or non- might use keyboard commands, some might use
complete products or software are represented to the mouse, some might use touch screen, etc, Hence all
customers to evaluate and give feedback. on the basis interaction mechanisms should be provided.
of their feedback we modify the products for supply Reduce the user’s memory load:
better product. Reduce demand on short-term memory: When
Umbrella activities include: users are involved in some complex tasks the demand
Risk management on short-term memory is significant.
Software quality assurance(SQA) USER INTERFACE ANALYSIS AND DESIGN
Software configuration management(SCM) The overall process for analyzing and designing a
Measurement user interface begins with the creation of different
Formal technical reviws(FTR) models of system functionInterface Analysis and
11.)PERFORMING USER INTERFACE DESIGN Design Models: Four different models come into play
User interface is the front-end application view to when a user interface is to be analyzed and designed.
which user interacts in order to use the software. To build an effective user interface, “all design
User can manipulate and control the software as well should begin with an understanding of the intended
as hardware by means of user interface. Today, user users, including profiles of their age, gender, physical
interface is found at almost every place where digital abilities, education, cultural or ethnic background,
technology exists, right from computers, mobile motivation, goals and personality. INTERFACE
phones, cars, music players, airplanes, ships etc. ANALYSIS
User interface is part of software and is designed A key tenet of all software engineering process
such a way that it is expected to provide the user models is: understand the problem before you
insight of the software. UI provides fundamental attempt to design a solution. In the case of user
platform for human-computer interaction. interface design, understanding the problem means
UI can be graphical, text-based, audio-video based, understanding (1) the people (end users) who will
depending upon the underlying hardware and interact with the system through the interface, (2) the
software combination. UI can be hardware or tasks that end users must perform to do their work,
software or a combination of both. (3) the content that is presented as part of the
The software becomes more popular if its user interface, and (4) the environment in which these
interface is: tasks will be conducted.
Attractive
Simple to use
Responsive in short time
Clear to understand
Consistent on all interfacing screens
UI is broadly divided into two categories:
Command Line Interface

You might also like