Pages

Friday 10 June 2011

Module 1 - Introduction to Software Engineering

SOFTWARE


Software, what it is?

Software, by definition, is the collection of computer programs, procedures and documentation that performs different tasks on a computer system.


Examples of software?


(feature software)



What is characteristic of software?

1- Software is developed or engineered, it is not manufactured.

2- Software is custom-built, because the industry is moving toward.

3- Efficiency and usability, software must be used in accordance with planned.

4- Dependability, the software must be trustworthy.


Several Software Application Domains :

SAPAWEE.

S – System software.

A – Application software.

P – Product-line software.

A – Al software.

W – Web Applications (WebApps).

E – Engineering/scientific software.

E – Embedded software.


Explaination.


System software

It is a computer software that manages and controls hardware in order to enable application software to perform its tasks. System software performs the functions like transferring data from memory to the disk or delivering text onto a display device.

Examples : Mac OSX, HD Sector Boot Software, Microsoft Windows.


Application software

Application software is that, which is designed for the end-users and hence known as end-user programs. It employs the capabilities of a computer to execute the tasks that the user wishes to perform on a computer system.

Examples : Web browser, word processing software, spreadsheet software, database software, presentation graphics software.


Production-line software

A software product line (SPL) is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.

Examples : Personal or business financial applications, Ms Word.


Al software

Artificial intelligence (AI) is the intelligence of machines and the branch of computer science that aims to create it. Make use of non-numerical algorithms to solve a complex problems that are not
amenable to computation or straightforward analysis. Many applications within this area include robotics, expert system pattern recognition, artificial neural networks, theorem proving, and game playing

Examples : Voice recognition, Angry Birds, Pokemon games.


Web Application software

Web application software is used to design, implement, optimize and maintain Web sites and Web clients. Software types include Web browsers, plug-ins, scripting languages, and other similar applications.

Examples : Uniten Online Application System, Facebook, Youtube.


Engineering/Scientific software

In the early year, it was characterized by “number crunching” algorithms. But now, it has changed to conventional numerical algorithms. This software is uses in many area including computer-aided design, system stimulator and other interactive applications.

Examples : Flight simulator, Auto-CAD, Statistical Analysis Software.


Embedded software

It is computer software that plays an integral role in the electronics it is supplied with.

Examples : Software to control robots movement, airplanes, missiles, and the other thousands process control systems.


What is the new of software domain?

  1. Open world computing—pervasive, distributed computing
  2. Ubiquitous computing—wireless networks
  3. Netsourcing—the Web as a computing engine
  4. Open source—”free” source code open to the computing community (a blessing, but also a potential curse!)
  5. Data mining
  6. Grid computing
  7. Cognitive machines
  8. Software for nanotechnologies

# According to the slide, its only has 8 software domains. However, it has more software’s that we don’t know are in the world.


Software Engineering (SE)


What is software engineering?

Institute of Electrical and Electronics Engineers (IEEE) :

1. (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

2. (2) The study of approaches as in (1).


What are realities in Software Engineering?

SE is a joint effort should be made to understand the problem before a software solution is developed.

Design, which is a crucial activity.

Software should exhibit high quality.

Software should be maintainable.


What is the SE layers?

SE Layers

Explanation’s about process model layer.

Software process is a collection of activities, actions, and tasks that are performed to develop or maintain a software product.

Framework activities:

- Generic activities that are applicable to all software projects, regardless of their size or complexity.

Umbrella activities:

- Complementary activities applied throughout a software project and help manage and control progress, quality, change, and risk.


Essential SE Practices.

Polya suggests:

1. Understand the problem (communication and modeling).

2. Plan a solution (planning and design).

3. Carry out the plan (construction and deployment).

4. Examine the result for accuracy (testing and quality assurance).


What are Hooker’s General SE Principles?


  1. The Reason It All Exists

Software exists to provide value to its users and all decision should be made with this in mind.


  1. KISS (Keep It Simple, Stupid!)

All software design should be as simple as possible but not simpler to ease understanding and maintenance of the software/system.


  1. Maintain the Vision

A clear vision is essential to the success of a software project.


  1. What You Produce, Others Will Consume

Always specify, design, and implement knowing others will have to understand what you are doing.


  1. Be Open to the Future

True “industrial-strength” software systems must endure long lifetime.

Be ready to adapt to changes (in hardware, computing platform etc).


  1. Plan Ahead for Reuse

Reuse reduces the cost and increases the value of the reused components and the systems into which they are incorporated.


  1. Think!

When you think about something (placing clear, complete thought before action), you are more likely to do it right (more importantly, the first time).


What is software myth?

Software Myths is # beliefs about software and the process used to build it - can be traced to the earliest days of computing. Myths have a number of attributes that have made them insidious. For instance, myths appear to be reasonable statements of fact, they have an intuitive feel, and they are often promulgated by experienced practitioners who "know the score". # Erroneous beliefs about software and the process that is used to build it.


What are classifications of software myth?

3 myths are classified:

Management myths

Customer myths

Practitioner myths



No comments:

Post a Comment