Software Engineering 3465

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 15

ALLAMA IQBAL OPEN

UNIVERSITY
ISLAMABAD

Name: Samina Asghar

Roll No: Bp482829

Semester: 7th Semester (Autumn 2020)

Course: software engineering

Code: 3465
Assignment NO 1
Question NO 1:
(a) What is meant by system Engineering? How software engineering
is different from other traditional engineering branches? Explain it in
detail with the help of a proper example.

Systems Engineering
Systems Engineering is a trans disciplinary and integrative approach to enable the successful
realization, use, and retirement of engineered systems, using systems principles and, and
scientific, technological, and management methods.

We use the terms “engineering” and “engineered” in their widest sense: “the action of working
artfully to bring something about”. “Engineered systems” may be composed of any or all of
people, products, services, information, processes, and natural elements.

Systems Engineering focuses on:

 establishing, balancing and integrating stakeholders’ goals, purpose and success criteria,
and defining actual or anticipated customer needs, operational concept and required
functionality, starting early in the development cycle;
 establishing an appropriate lifecycle model, process approach and governance
structures, considering the levels of complexity, uncertainty, change, and variety;
 generating and evaluating alternative solution concepts and architectures;

 base lining and modelling requirements and selected solution architecture for each
phase of the endeavor;
 performing design synthesis and system verification and validation;

 While considering both the problem and solution domains, taking into account
necessary enabling systems and services, identifying the role that the parts and the
relationships between the parts play with respect to the overall behavior and
performance of the system, and determining how to balance all of these factors to
achieve a satisfactory outcome.

Systems Engineering provides facilitation, guidance and leadership to integrate the relevant
disciplines and specialty groups into a cohesive effort, forming an appropriately structured
development process that proceeds from concept to production, operation, evolution and
eventual disposal.
Systems Engineering considers both the business and the technical needs of customers with the
goal of providing a quality solution that meets the needs of users and other stakeholders, is fit
for the intended purpose in real-world operation, and avoids or minimizes adverse unintended
consequences.

The goal of all Systems Engineering activities is to manage risk, including the risk of not
delivering what the customer wants and needs, the risk of late delivery, the risk of excess cost,
and the risk of negative unintended consequences.  One measure of utility of Systems
Engineering activities is the degree to which such risk is reduced.  Conversely, a measure of
acceptability of absence of a System Engineering activity is the level of excess risk incurred as a
result.

Software Engineering:

Software engineering is defined as a process of analyzing user requirements and then


designing, building, and testing software application which will satisfy those requirements.

Let's look at the various definitions of software engineering:

 IEEE, in its standard 610.12-1990, defines software engineering as the application of a


systematic, disciplined, which is a computable approach for the development,
operation, and maintenance of software.
 Fritz Bauer defined it as 'the establishment and used standard engineering principles. It
helps you to obtain, economically, software which is reliable and works efficiently on the
real machines'.
 Boehm defines software engineering, which involves, 'the practical application of
scientific knowledge to the creative design and building of computer programs. It also
includes associated documentation needed for developing, operating, and maintaining
them.'

Other traditional branches of engineering:-


Aerospace engineering
Aerospace engineering studies design, manufacture aircraft, satellites, rockets, helicopters, and
so on. It closely studies the pressure difference and aerodynamics of a vehicle to ensure safety
and efficiency. Since most of the studies are related to fluids, it is applied to any moving vehicle,
such as cars.
Marine engineering
Marine engineering is associated with anything on or near the ocean. Examples are, but not
limited to, ships, submarines, oil rigs, structure, watercraft propulsion, on-board design and
development, plants, harbors, and so on. It requires a combined knowledge in mechanical
engineering, electrical engineering, civil engineering, and some programming abilities.
Computer engineering
Computer engineering (CE) is a branch of engineering that integrates several fields of computer
science and electronic engineering required to develop computer hardware and software.
Computer engineers usually have training in electronic engineering (or electrical
engineering), software design, and hardware-software integration instead of only software
engineering or electronic engineering.

(b) What are the major characteristics of a software product?


Software Products are nothing but software systems delivered to the customer with the
documentation that that describe how to install and use the system. In certain cases, software
products may be part of system products where hardware, as well as software, is delivered to a
customer. Software products are produced with the help of the software process. The software
process is a way in which we produce software.

Characteristics of software:

 Efficiency:
The software should not make wasteful use of system resources such as memory and
processor cycles.
 Maintainability:
It should be possible to evolve the software to meet the changing requirements of
customers.
 Dependability:
It is the flexibility of the software that ought to not cause any physical or economic injury
within the event of system failure. It includes a range of characteristics such as reliability,
security and safety.
 In time:
Software should be developed well in time.
 Within Budget:
The software development costs should not overrun and it should be within the
budgetary limit.
 Functionality:
The software system should exhibit the proper functionality, i.e. it should perform all the
functions it is supposed to perform.
 Adaptability:
The software system should have the ability to get adapted to a reasonable extent with
the changing requirements.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for
SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
Question NO 2:
Differentiate the following terms:

● Data Design and user interface Design

Database Design

Database Design is a collection of processes that facilitate the designing, development,


implementation and maintenance of enterprise data management systems. Properly
designed database are easy to maintain, improves data consistency and are cost
effective in terms of disk storage space. The database designer decides how the data
elements correlate and what data must be stored.

The main objectives of database designing are to produce logical and physical designs
models of the proposed database system.

 The logical model concentrates on the data requirements and the data to be stored
independent of physical considerations. It does not concern itself with how the data will
be stored or where it will be stored physically.

 The physical data design model involves translating the logical design of the database
onto physical media using hardware resources and software systems such as database
management systems (DBMS).

User interface design


User interface engineering is the design of user interfaces for machines and software
such as computers, home appliances, mobile devices, and other electronic devices,
with the focus on maximizing usability and the user experience. The goal of user
interface design is to make the user's interaction as simple and efficient as possible, in
terms of accomplishing user goals (user-centered design).
Good user interface design facilitates finishing the task at hand without drawing
unnecessary attention to itself. Graphic design and typography are utilized to support
its usability, influencing how the user performs certain interactions and improving
the aesthetic appeal of the design; design aesthetics may enhance or detract from the
ability of users to use the functions of the interface. The design process must balance
technical functionality and visual elements (e.g., mental model) to create a system that
is not only operational but also usable and adaptable to changing user needs.
Interface design is involved in a wide range of projects, from computer systems, to cars,
to commercial planes; all of these projects involve much of the same basic human
interactions yet also require some unique skills and knowledge. As a result, designers
tend to specialize in certain types of projects and have skills centered on their expertise,
whether it is a software design, user research, web design, or industrial design.

● Graphical Design and Tabular Design Notation


Graphic design is the process of visual communication through the use
of typography, photography, iconography and illustration. The field is considered a
subset of visual communication and communication design, but sometimes the term
"graphic design" is used synonymously. Graphic designers create and combine
symbols, images and text to form visual representations of ideas and messages.
They use typography, visual arts, and page layout techniques to create visual
compositions. Common applications of graphic design include corporate design (logos
and branding), editorial design (magazines, newspapers and books), way finding or
environmental design, advertising, web design, communication design,
product packaging, and signage.
TABULAR DESIGN NOTATION Decision tables provide a notation that translates
action and conditions (described in a processing narrative) into a tabular form. The table is
difficult to misinterpret and may even be used as a machine readable input to a table driven
algorithm.  Referring to the fig 5.33, double lines divide the table into four sections. The
upper left hand section contains a list of all conditions whereas lower left hand section
contains all of all possible actions on combinations of conditions. The right hand
sections form a matrix to indicate condition combination and the corresponding actions that
will occur for a specific combination. Therefore each column of the matrix may be
interpreted as processing rule.

The followings steps are applied to develop a decision table:


1. List all action that can be associated with a specific procedure (or Module).

2. List all conditions (or decision made) during execution of the procedure.

3. Associate specific sets of conditions with specific actions eliminating impossible combinations


of conditions alternatively develop every possible permutation of conditions.

4. Define rules by indicating what actions occur for a set of conditions.

Question NO 3:
Explain different process models along with their relative merits and
demerits.

Software Development Process Models


A software process model represents the order in which the activities of software
development will be undertaken.  It describes the sequence in which the phases of
the software lifecycle will be performed.

Typical Student Programming Process

Most students are not provided much training in the process of developing software and as a
result have a very simplistic procedure they call "programming."  Their understanding of their
own process is quite vague and described with very general terms "coding" and
"debugging."
Waterfall Model

 Each phase is carried out completely (for all requirements) before proceeding to the
next.
 The process is strictly sequential - no backing up or repeating phases.  

Advantages:
Simple, easy to understand and follow.
Highly structured, therefore good for beginners.
After specification is complete, low customer involvement required.

Disadvantages:

Inflexible - can't adapt to changes in requirements. 

Prototyping Model

A variation of the waterfall that adds a new phase, prototyping.  There are several kinds of
prototypes but they all intend to reduce risk by building a quick and dirty replica or mockup of
the intended system. It can be used to demonstrate technical feasibility when the technical risk
is high. It can also be used to better understand and elicit user requirements. In either case, the
goal is to reduce risk and limit costs by increasing understanding of proposed solutions before
committing more resources.

Spiral Model

An iterative approach where multiple passes are made through each phase.  During each
iteration the system is explored at greater depth and more detail is added.   Appropriate for
exploratory projects that are working in an unfamiliar domain or with unproven technical
approaches.  The iterative natures allows for knowledge gained during early passes to inform
subsequent passes.  Requires low up-front commitment.
Advantage: Manages uncertainty inherent in exploratory projects.

Disadvantage: Difficult to establish stable documents; things keep getting modified during
each iteration.

Agile Model:
An iterative approach.  During each iteration a single feature or small set of features are chosen
and implemented completely. 
Advantages:

Can adapt to changing requirements because you haven't committed to big design that
encompasses everything.
Easy to change direction to adapt to dynamic market conditions.

Disadvantages:

Used as an excuse for hacking - proceeding without a plan.


Substantial refactoring or redesign may be needed between iterations.
Not suitable for large projects or large teams.
Requires huge customer involvement, which is unusual to find.

Evolutionary Model ("Staged Delivery")

Recommended by McConnell.
All analysis and design is done up front.
Each stage releases some fully functional subset of desired features.
Emphasis is on high quality releases.
Can incorporate prototyping.

Advantages:
Partial functionality available early.
Some flexibility in responding to changing market conditions or customer needs.
A complete and stable design is produced.
A compromise between waterfall and agile.

Disadvantages: Can't easily adapt to entirely new requirements.

Question NO 4:
Answer the following questions properly:

● Define the term “user interface Design”.


User interface design (UI) or user interface engineering is the design of user
interfaces for machines and software, such as computers, home appliances, mobile devices,
and other electronic devices, with the focus on maximizing usability and the user experience.
The goal of user interface design is to make the user's interaction as simple and efficient as
possible, in terms of accomplishing user goals (user-centered design).
Good user interface design facilitates finishing the task at hand without drawing unnecessary
attention to itself. Graphic design and typography are utilized to support its usability,
influencing how the user performs certain interactions and improving the aesthetic appeal of
the design; design aesthetics may enhance or detract from the ability of users to use the
functions of the interface. The design process must balance technical functionality and visual
elements (e.g., mental model) to create a system that is not only operational but also usable
and adaptable to changing user needs.
Interface design is involved in a wide range of projects, from computer systems, to cars, to
commercial planes; all of these projects involve much of the same basic human interactions yet
also require some unique skills and knowledge. As a result, designers tend to specialize in
certain types of projects and have skills centered on their expertise, whether it is a software
design, user research, web design, or industrial design.
Designing User Interfaces for Users
User interfaces are the access points where users interact with designs. They come in three
formats:
Graphical user interfaces (GUIs)—Users interact with visual representations on digital control
panels. A computer’s desktop is a GUI.
Voice-controlled interfaces (VUIs)—Users interact with these through their voices. Most smart
assistants—e.g., Siri on iPhone and Alexa on Amazon devices—are VUIs.
Gesture-based interfaces—Users engage with 3D design spaces through bodily motions: e.g.,
in virtual reality (VR) games.
To design UIs best, you should consider:
Users judge designs quickly and care about usability and likeability.
They don’t care about your design, but about getting their tasks done easily and with minimum
effort.
Your design should therefore be “invisible”: Users shouldn’t focus on it but on completing tasks:
e.g., ordering pizza on Domino’s Zero Click app.
So, understand your users’ contexts and task flows (which you can find from, e.g., customer
journey maps), to fine-tune the best, most intuitive UIs that deliver seamless experiences.
● briefly explain the concept of “Task Analysis and Modeling”.
Task Analysis is the recognition of the prime elements of any given job and then
understanding the skills required to make sure that the job is done with perfect outcome. This
information is essential for the human resource management department, as it will allow them
to plan objectives and help in organizing training programs and necessary tools that are
required to make sure that the required job is done.
Purpose of Task Analysis
Task analysis is important because it helps in:
1. Analyzing the objective and goals of any institution
2. Explain in detail the many tasks that are a part of completing one major task.
3. Figure out the type of job so that it can be classified according to it.
4. Understand the various outcomes that are possible, and prioritize according to sequence of
importance.
5. Analyze different strategies that can be implemented in order to achieve the goals.
6. Provide employees with interactive means to understand the process and learn it
7. Evaluate the process.

Modeling
Social sciences rely increasingly on modeling as a result of their mathematization, the overall
computerization of science, and the increase of available data. Once dubbed the “hermeneutic
sciences,” the social sciences now resemble more than before the natural sciences, in which
model building, testing, and comparison occupy a central role. In this development, economists
have undoubtedly been pioneers among the social scientists: Since World War II, model
building has become the main practice of economists. What is more, the various modeling
methods adopted and developed by economists have disseminated to other social sciences.
Especially, political scientists have been inspired by the rational-choice style of modeling and
the associated mathematical techniques used by economists (see Morton 1999). Sociologists
have, however, preferred statistical modeling, being rather skeptical about modeling social
phenomena in abstract mathematical terms.

Interestingly, although social scientists use in their modeling activities the same kinds of
mathematical and statistical tools that natural scientists use, they often see models in a
different light than do natural scientists. Whereas for social scientists models tend to be highly
abstract and even unrealistic depictions of their target systems, both natural scientists and
philosophers have tended to appreciate the concreteness of models as opposed to the theory.
This contrast between the attitudes of social and natural scientists is partly explained by the
fact that with models, social scientists often refer to what they call “formal” or “mathematical
models,” which seem hopelessly plain and simple in comparison to the social phenomena they
aim to explain. Although by “formal models” social scientists usually mean “mathematical
models,” a model need not be mathematical to be formal. Any model that is presented
symbolically or diagrammatically, allowing one to manipulate the model in order to obtain
different results or predictions, can be regarded as formal. A good example of formal but not
mathematical models is provided by chemical formulas (such as H 2O for water). Several
philosophers, especially adherents to the semantic conception of theories (see below),
distinguish between “abstract models” and the mathematical means used to express them.
From their point of view, a set of mathematical equations, that is, what frequently is called
a “mathematical model” by social scientists, actually should not be regarded as a model, but
rather the abstract entity to which these equations refer.

Generally speaking, the most conspicuous feature of scientific models is perhaps the variety of
the forms and functions they may take in scientific endeavors. The things called “models” in
science make up a truly heterogeneous group: They can be diagrams, physical three-
dimensional things, mathematical equations, computer simulations, model organisms, or even
laboratory populations. Apart from explanation and prediction, models are used for heuristic
purposes and as a tool for theory construction. Moreover, it is typical of modeling that models
are often employed to explore the implications, dynamics, or internal consistency of multiple
theoretical assumptions. Models can also be used as “proofs” of various theoretical
possibilities.

Question NO 5:
Write short notes on the following topics:

● Architectural Styles:
An architectural style is characterized by the features that make a building or other structure
notable or historically identifiable. It is a sub-class of style in the visual arts generally, and most
styles in architecture related closely to the wider contemporary artistic style. A style may
include such elements as form, method of construction, building materials, and regional
character. Most architecture can be classified within a chronology of styles which changes over
time reflecting changing fashions, beliefs and religions, or the emergence of new ideas,
technology, or materials which make new styles possible.
Styles therefore emerge from the history of a society. They are documented in the subject
of architectural history. At any time several styles may be fashionable, and when a style
changes it usually does so gradually, as architects learn and adapt to new ideas. The new style is
sometimes only a rebellion against an existing style, such as post-modernism (meaning "after
modernism"), which in 21st century has found its own language and split into a number of
styles which have acquired other names.
Architectural Styles often spread to other places, so that the style at its source continues to
develop in new ways while other countries follow with their own twist. For
instance, Renaissance ideas emerged in Italy around 1425 and spread to all of Europe over the
next 200 years, with the French, German, English, and Spanish Renaissances showing
recognizably the same style, but with unique characteristics. An architectural style may also
spread through colonialism, either by foreign colonies learning from their home country, or by
settlers moving to a new land. One example is the Spanish missions in California, brought by
Spanish priests in the late 18th century and built in a unique style.
After an architectural style has gone out of fashion, revivals and re-interpretations may occur.
For instance, classicism has been revived many times and found new life as neoclassicism. Each
time it is revived, it is different. The Spanish mission style was revived 100 years later as
the Mission Revival, and that soon evolved into the Spanish Colonial Revival.
Vernacular architecture is listed separately. As vernacular architecture is better understood as
suggestive of culture, writ broadly (as well as a theory and a process rather than a thing-in-
itself), it technically can encompass every architectural style--or none at all. In and of itself,
vernacular architecture is not a style.

● Overview of Design
A design is a plan or specification for the construction of an object or system or for the
implementation of an activity or process, or the result of that plan or specification in the form
of a prototype, product or process. The verb to design expresses the process of developing a
design. In some cases, the direct construction of an object without an explicit prior plan (such
as in craftwork, some engineering, coding, and graphic design) may also be considered to be a
design activity. The design usually has to satisfy certain goals and constraints, may take into
account aesthetic, functional, economic, or socio-political considerations, and is expected to
interact with a certain environment. Major examples of designs include architectural
blueprints, engineering drawings, business processes, circuit diagrams, and sewing patterns.
The person who produces a design is called a designer, which is a term generally used for
people who work professionally in one of the various design areas—usually specifying which
area is being dealt with (such as a textile designer, fashion designer, product designer, concept
designer, web designer or interior designer), but also others such as architects and engineers. A
designer's sequence of activities is called a design process, possibly using design methods. The
process of creating a design can be brief (a quick sketch) or lengthy and complicated, involving
considerable research, negotiation, reflection, modeling, interactive adjustment and re-design.

You might also like