0% found this document useful (0 votes)
48 views7 pages

1.1introduction To Software Engineering

SE

Uploaded by

AaKas D KhsTry
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)
48 views7 pages

1.1introduction To Software Engineering

SE

Uploaded by

AaKas D KhsTry
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/ 7

[CSc.

351 Software Engineering]


Lecturer: Hiranya Bastakoti

Amrit Science Campus


Introduction: Chapter- One Software Engineering
1.1.1 Software:

 Software is computer programs and associated documentation. This definition clearly states that,
the software is not a collection of programs, but includes all associated documentation.

 Software system usually consists of a number of separate programs, configuration files: which are
used to set up these programs, System documentation: which describes the structure of the system,
and user documentation: which explains how to use the system and web sites for users to download
recent product information.

 Software products may be developed for a particular customer or may be developed for a general
market

Software products may be:

 Generic – These are stand-alone systems that are produced by a development organization and sold
on the open market to any customer who is able to buy them. (i.e. developed to be sold to a range
of different customers). e.g. Databases, Office packages, Drawing Packages etc.

 Bespoke (custom) – These are the systems which are commissioned by a particular customer. A
software contractor develops the software especially for that customer. (i.e. developed for a single
customer according to their specification). e.g.: Control system for electronic device, software to
support particular business process.

1.1.2 Software Engineering:

 Software engineering is strategy for producing quality software.

 It is the establishment and use of sound engineering principles in order to obtain economically
software is reliable and works efficiently on real machines.

 Software engineering is an engineering discipline which is concerned with all aspects of software
production

 Software engineers should adopt a systematic and organised approach to their work and use
appropriate tools and techniques depending on the problem to be solved, the development
constraints and the resources available

 Software engineering as a discipline provides us with structured technical means of developing


and maintaining software. It provides methods to perform the tasks that the making of any
software requires, analyzing the requirements, designing the system to meet these
requirements, constructing the programs, maintaining the system, etc. Software engineering
tools are used to support the tasks by automating the tasks or parts of the tasks.

Compiled by: Hiranya Bastakoti Page 1


The advantages of using software engineering for developing software are:

o Improved quality

o Improved requirement specification

o Improved cost and schedule estimates

o Better use of automated tools and techniques.

o Better maintenance of delivered software

o Well defined process

o Improved reliability

o Improved productivity

o Less defects in final processes

Why software Engineering?

 The economies of ALL developed nations are dependent on software

 More and more systems are software controlled

 Software engineering is concerned with theories, methods and tools for professional software
development

 Software engineering expenditure represents a significant fraction of GNP in all developed


countries

What is the difference between software engineering and computer science?

 Computer science is concerned with theories and methods that underline computer software
system.; software engineering is concerned with the practicalities of developing and delivering
useful software

 Some knowledge of computer science is essential for software engineers

 Computer science theories are currently insufficient to act as a complete underpinning for
software engineering

What is a software process?

 It is a set of activities and associated results that produce a software product.

 Generic activities in all software processes are:

• Specification –where customers and engineers define the software to be produced and the
constraints on its operation. (i.e. what the system should do and its development constraints)

Compiled by: Hiranya Bastakoti Page 2


• Development – Where the software is designed and programmed. (i.e. production of the
software system)

• Validation – where the software is checked to ensure that it is what the customer requires. (i.e.
checking that the software is what the customer wants)

• Evolution – Where the software is modified to adapt it to changing customer and market
requirements. (i.e. changing the software in response to changing demands)

What is a software process model?

 It is a simplified representation of a software process, presented from a specific perspective.


Software process model may include activities that are part of the software process, software
products and the role of people involved in software engineering.

 software process models are:

• Workflow model – (sequence of activities)

This model shows the sequence of activities in the process along with their inputs, outputs
and dependencies. The activities in this model represent human actions.

• Data-flow or Activity model – (information flow)

This model represents the process as a set of activities each of which carries out some data
transformation. It shows how the input to the process, such as a specification, is transformed
to an output, such as a design. The activities here may represent transformations carried out
by people /computer

• Role/action Model – (who does what)

This model represents the roles of people involved in the process and the activities for which
they are responsible.

 Generic process models

• Waterfall

• Evolutionary development

• Formal transformation

• Integration from reusable components-CBSE (computer -based software engineering)

Software costs

The distribution of costs across the different activities in the software process depends on the process
used and the type of software that is being developed

 Software costs often dominate system costs. The costs of software on a PC are often greater
than the hardware cost

Compiled by: Hiranya Bastakoti Page 3


 Software costs more to maintain than it does to develop. For systems with a long life,
maintenance costs may be several times development costs

 Software engineering is concerned with cost-effective software development

 Roughly 60% of costs are development costs, 40% are testing costs. For custom software,
evolution costs often exceed development costs

 Costs vary depending on the type of system being developed and the requirements of system
attributes such as performance and system reliability

 Distribution of costs depends on the development model that is used

What are software engineering methods?

It is a structured approach to software development which includes system models, notations,


rules, design advice and process guidance whose aim to facilitate the production of high-quality
software in cost-effective way.

 Model descriptions

• Descriptions of graphical models which should be developed and the notation used to define
these models.eg. Object model, Data Flow Model

 Rules

• Constraints applied to system models e.g. Every entity in a system model must be unique name

 Recommendations-

 Heuristic which characterise good design practice in this method. Following these
recommendations should lead to a well-organized system model (i.e. Advice on good design
practice).e.g. No object should have more than seven sub-objects associated with it.

 Process guidance

 Descriptions of the activities which may be followed to develop the system models and the
organization of these activities. e.g. Object attributes should be documented before designing
the operations associated with an object.

What is CASE (Computer –Aided Software Engineering)?

It covers a wide range of different types of programs that are used to support software process activities
such as requirement analysis, system modelling, debugging and testing

Computer-Aided Software Engineering (CASE) tools are software programs that automate or support
the drawing and analysis of system models and provide for the translation of system models into
application programs. Some CASE tools also provide prototyping and code generation capabilities.

Compiled by: Hiranya Bastakoti Page 4


What are the key challenges facing software engineering?

 Coping with legacy systems, coping with increasing diversity and coping with demands for
reduced delivery times are challenges of software engineering.

The key challenges are:

 Legacy systems

o Old, valuable systems must be maintained and updated

 Heterogeneity

o Systems are distributed and include a mix of hardware and software

 Delivery

o There is increasing pressure for faster delivery of software

1.2 Software characteristics

 Like all engineering, software engineering is not just about producing product but involves
producing products in a cost effective way. Given unlimited resources, the majority of software
problems can probably be solved. The challenged for the software engineers is to produce high
quality software with a finite amount of resources and to a predicted schedule.

 The software should deliver the required functionality and performance to the user and should be
maintainable, dependable and usable

Maintainability: (Software must evolve to meet changing needs)

Software should be written in such a way that it may evolve to meet the changing needs of customers.
This is a critical attribute because software change is an inevitable consequence of a changing
environment.

Dependability: (Software must be trustworthy)

Software dependability has a range of characteristics, including reliability, security and safety.
Dependable software should not cause physical or economic damage in the event of system failure.

Efficiency: (Software should not make wasteful use of system resources)

System should not make wasteful use of system resources such as memory and processor cycles.
Efficiency therefore includes responsiveness, processing time, and memory utilization.

Usability: (Software must be usable by the users for which it was designed)

Software must be usable, without undue effort, by the type of user for whom it is designed. This means
that it should have an appropriate user interface and adequate documentation.

Compiled by: Hiranya Bastakoti Page 5


Professional and ethical responsibility

 Software engineering involves wider responsibilities than simply the application of technical
skills

 Software engineers must behave in an honest and ethically responsible way if they are to be
respected as professionals

 Ethical behaviour is more than simply upholding the law.

Issues of professional responsibility

 Confidentiality

• Engineers should normally respect the confidentiality of their employers or clients


irrespective of whether or not a formal confidentiality agreement has been signed.

 Competence

• Engineers should not misrepresent their level of competence. They should not
knowingly accept work which is out with their competence.

 Intellectual property rights

• Engineers should be aware of local laws governing the use of intellectual property such
as patents, copyright, etc. They should be careful to ensure that the intellectual
property of employers and clients is protected.

 Computer misuse

• Software engineers should not use their technical skills to misuse other people’s
computers. Computer misuse ranges from relatively trivial (game playing on an
employer’s machine, say) to extremely serious (dissemination of viruses).

Compiled by: Hiranya Bastakoti Page 6

You might also like