old question solution

Software and it’s characteristic

Software are computer programs, it is a part of a computer system that consists of data or computer instructions, in contrast to the physical hardware from which the system is built.

Function of software:-

Characteristic of software

Prototype Model of software development

The Prototyping Model is a systems development method (SDM) in which a prototype(an early approximation of a final system or product) is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed. This model works best in scenarios where not all of the project requirements are known in detail ahead of time. It is an iterative, trial-and-error process that takes place between the developers and the users.

Advantages of prototype model:

  • Increased user involvement in the product even before its implementation.
  • Since a working model of the system is displayed, the users get a better understanding of the system being developed.
  • Reduces time and cost as the defects can be detected much earlier.
  • Quicker user feedback is available leading to better solutions.
  • Missing functionality can be identified easily.

Disadvantages of prototype model:

  • Users may get confused in the prototypes and actual systems.
  • Developers may try to reuse the existing prototypes to build the actual system, even when it is not technically feasible.
  • The effort invested in building prototypes may be too much if it is not monitored properly.

COCOMO Model

This model distinguishes three classes of software project.

  • Organic or small
  • Embedde
  • Semidetached or Moderate
Calculating Effort (left) , Calculating Tdev (project duration) (right)

Why is evolutionary development used in software development ?

The evolutionary development model (EVO) enables the development of products that better fits users’ needs, reduce costs and risk, and enable faster incremental improvements to existing products.

  • Significantly reduces the risk of software projects
  • Reduce costs by examining and analyzing the issues of each phase
  • Minimizing critical and serious defects during testing
  • Increasing response of the development team to changes
  • Enables continuous process improvement
  • Increasing team motivation and collaboration
  • Resulting products that better fit user needs and market requirements

Behavioral Specification

The simple algebraic technique can be used to describe interfaces where the object state changing depending on the previous operation result. Where this condition holds we say it the behavior properties of system . The specification which is used to specify such type of system property is called behavioral specification. As their size of system is increased, the description of system behavior becomes increasingly difficult to understand.

Sequence Diagram

Sequence diagrams describe interactions among classes in terms of an exchange of messages over time. They’re also called event diagrams. A sequence diagram is a good way to visualize and validate various runtime scenarios. These can help to predict how a system will behave and to discover responsibilities a class may need to have in the process of modeling a new system.In a sequence model,

a. Objects involved in the interaction are arranged horizontally with a vertical line linked to each object.

b. Time is represented vertically.

c. Labeled arrows linking the vertical lines represent the interaction between objects.

d. The thin rectangle on the object lifeline represents the time when the object is “controlling object” in the system.

Sequence Diagram for shopping

Clean room software development

The clean room process is a theory-based, team-oriented process for the development and certification of high-reliability software systems under statistical quality control. Its principal objective is to develop software that exhibits zero failures in use. The goals in this method is to reduce the failures found during testing by enabling good and correct designs that avoid rework.

Software Testing

Software testing is a process of executing a program or application with the intent of finding the software bug. Testing assesses the quality of the product.Types of software testing:-

i. Manual Testing:- Manual testing includes testing a software manually, i.e without using any automation tool or any script. In this method the tester plays an important role of end user and verifies that all the features of the application are working correctly. Manual testing does not require knowledge of any testing tool.

ii. Automation Testing :- Automation testing, which is also known as Test Automation, is when the tester writes scripts and uses another software to test the product. The automation software can also enter test data into the System Under Test, compare expected and actual results and generate detailed test reports. It saves time, cost and manpower to test the product.

Examples of testing:-

Unit testing, acceptance testing, functional testing, alpha testing, beta testing etc.

Reliability Validation

Validation testing is used for testing performance and reliability of system. Testing is performed using test data that reflect operational profile of the system. The operational profile of the system reflects how system will be used. Reliability of system is estimated by determining frequency of system failure. Performance is evaluated by measuring execution and response time. Reliable assessment tools produce dependable, repeatable, and consistent information.

User Interface Prototyping

User interface (UI) prototyping is an iterative development technique in which users are actively involved in the mocking-up of the UI for a system. users interact with designers and interface prototype to be decided on the features, organization and look and feel of the system user interface. Sometimes the interface is separately prototype in parallel with other s/w engineering activities.
The user interface design process is described into three phases:
1. User Analysis:- The user analysis process developed an understanding of the task that user do their working environment, the other system that they use, how they interact with other people in their work and so on.
2. System prototyping:- User interface design and development is an iterative process. Although, users may talk about the facilities they need from an interface, it is very difficult for them to specify facilities until they see something tangible. Therefore, the developer has to develop system prototype and expose them to users.
3. Interface evaluation:- Developers have to discuss with users during the prototyping process and collect information about users experience with the interface to formalize evaluation activities.

Software Inspection

Software inspection analyzes and checks system representation such as requirement document, design program, and program source code. It is a static verification and validation process in which a software system is reviewed to find errors, omissions and anomalies. When an inspection is done, knowledge of system, its application domain, design model and error conditions are used. Advantage of software inspection :-

Source Code Translation

Source code is the fundamental component of a computer program that is created by a programmer. It can be read and easily understood by a human being. When a programmer types a sequence of C language statements into Windows Notepad, for example, and saves the sequence as a text file, the text file is said to contain the source code.It is the simplest form of software re-engineering where source code in one programming language is automatically translated to source code in some other language. The structure and organisation of the program itself is unchanged. The target language may be an updated version of the original language or may be a translation to a completely different. Source code translation is only economically realistic if an automated translator is available to do the bulk of the translation. This may be a specially written program, a bought-in tool to convert from one language to another or a pattern matching system

MSP 2017. Graduation in computer science and information technology. Studying MBA.