Unit 21 Application Engineering Assignment Solution

 Application Engineering Assignment Solution

Unit 21 Application Engineering Assignment Solution

Task 1: Understand the traditional and modern approaches to developing information systems

1.1 Critically assess the benefits and limitations of the traditional systems/software development life cycles (SDLCs)

What is Software Development Life Cycle?
SDLC is short for Software / System Development Life Cycle. It is the process or series of planned activities, standardized by ISO/IEC 12207, that software follows during its design and development.
Major aim of following Software Development Life Cycle is to produce high quality software that meets customer’s expectations and is built within estimated cost and time.

Application engineering

                                          fig:Phases of SDLC

There are six phases in every software / systems development life cycle:

  1. Requirement Analysis
  2. Design
  3. Coding or Implementation
  4. Testing
  5. Deployment
  6. Maintenance

Requirement Analysis: In this phase, following points are considered –

  • Requirements for developing the system are gathered from end users, managers and stakeholders.
  • Time and cost for development of the system are estimated.
  • The input and output parameters are established.
  • Feasibility of the system is checked.
  • An SRS or Software Requirement Specification document is prepared.

Design: This is the second phase of SDLC. Following points are required to be considered in this-

  • The system is designed or wireframe is created according to the SRS created in requirement analysis phase.
  • A SDS or Software Design Specification is prepared in this phase which chalks hardware (computers with different configurations) and software requirements (front end and backend) of the system to be developed.
  • This SDS acts as input to implementation or coding phase of life cycle.

Implementation / Coding: This is the third and most important phase as main development starts here and it’s the main concern of developers. Actual coding with database design starts in this phase. This can be called as longest phase of life cycle.
Testing: This is the next step after coding gets complete. In this phase the actual and expected requirements of the system are compared and any discrepancies are reported to developer. Software is checked for bugs (errors in code), which are then corrected by developers.
Software Testing can be divided into various types: Blackbox testing (Testing person does not know the internal working of software) and white box testing (Testing person also checks the code of the system)
Types of Functional / Blackbox testing: Unit testing, systems testing, integration testing, acceptance testing, performance testing, load testing, stress testing.
Boundary Value analysis is a technique used in BBT (Blackbox testing)
Types of Structural / Whitebox testing: Code coverage, branch coverage, segment coverage, equivalence partitioning are some techniques used in white box testing. Control Flow Models are also part of WBT.
Deployment: After software is tested on developers site and customer’s site, then it is installed / deployed at customer’s site and is ready to use.
Maintenance: After the customer starts using the software, the actual issues that pop up are rectified by the software development team from time to time. This completes the life cycle of the software product.
There are various kinds ofsoftware development life cycle models followed within different organizations these days. Some of the examples are waterfall model, iterative model, spiral model, v-model, big-bang model, agile model, RAD model etc.

Advantages of SDLC:

  • Software development life cycle is not only important for developers as it helps to estimate time and cost of the software project beforehand but it is also essential for end users to keep a check on the progress of the project through the development phase.
  • Each single phase of SDLC has its own benefits. E.g. If something got missed in requirements phase then it can be caught in testing phase and corrected. Expected results can be matched up with actual results and thus a healthy application will be developed.
  • Output of each phase acts as input for the next phase, thus a formal review at end of each phase empowers developer with maximum management control.
  • SDLC helps us to create Software Requirement Specification (SRS) and SDS (Software Design Specification), which are important in design and development of the system.

Disadvantages of SDLC:

  • The customer or end user does not have any involvement in the phases of SDLC. Requirements are collected from him and incorporated into the application that is being developed.
  • It often happens that customers’ needs are misinterpreted by developers and end user gets a system as per the understanding of the developers.
  • Documentation (SRS + SDS)  is expensive to develop.

1.2 Evaluate different information systems development methodologies (ISDMs)

What is ISDM?
Information System Development Methodology (ISDM) is the framework used to plan, structure and control the process of developing an information system. By utilizing the techniques used within this framework development team can effectively and efficiently define the scope, time and cost of the application to be developed.
Here are few types of Information System Development Methodologies:
Agile Software Development Methodology – This is also sometimes known as incremental model. The application software is developed in rapid incremental cycles. The output of each cycle is called as release. Each release is built on previous functionality and is thoroughly tested to ensure application software quality. An example is Extreme Programming.
Scrum Methodology – This is a type of agile methodology, but works on the idea of empirical approach or experimenting rather than observing. Work or application development is divided into small parts or sprints, i.e. periodic evaluation of the application to be developed. Sprints can be of 1 week, 2 week duration, i.e. work done in 1 week is evaluated by developers & users of system, and its advantages and limitations are discussed, any modifications are incorporated.
System / Software Development Life Cycle (SDLC) - It is the process or series of planned activities that software follows during its design and development. Phases are: Requirement Analysis, Design, Coding, Testing, Deployment and Maintenance.
Dynamic Systems Development Model Methodology (DSDM) – It is a type of agile methodology which helps to provide right solution at right time. This is a scalable approach which focuses on early delivery of project within budget.
Crystal Methods Methodology – In this methodological analysis, the project process is given less importance rather the people involved in development team are given more priority. Team building skills, communication skills and interaction are more prominent.
Feature Driven development (FDD) - Application is developed based upon its features, in short and simple cycles.
Joint Application Development (JAD) – This type of process includes, involving the client or end user in the development of application / software right from the beginning. Joint sessions of developers and users are set up, where they discuss the requirement at every stage.
Rational Unified Process (RUP) – This is an iterative approach which includes all software development methodologies in one package.
Rapid Application Development (RAD) – To develop high quality products quickly is the main process of this methodology. To speed up the development timelines, product / software components are often re-used and prototyping is utilized to get clear requirements.
Lean Development (LD) – Customer satisfaction is of highest priority at this stage. Main idea behind this approach is to get maximum value for customer’s investment.

Task 2: Critically assess the application of modern methodologies for developing information systems

2.1 Assess the benefit and limitation of the agile principles

What is Agile Process?
Agile Model of software development is incremental and iterative process which focuses on delivering the software product in small rapid cycles.
At end of each cycle inputs from developers and customers are incorporated in development of product. Such small cycles are called ‘build’ and output of each build is called a ‘release’.
Scrum meetings or ‘sprint’ or ‘iterations’ are conducted periodically to review and revise the software after every release. Cross functional teams work on software product to discuss requirements, design, code, testing etc.

Advantages of Agile Process

Customer is satisfied as his inputs are taken at end of each release.

  • Interpersonal communication between developers, testers and users is enhanced.
  • With every build working software is released, so end users do not have to wait for long.
  • Software product is adaptable to changing environment, as requirements can be incorporated at each stage of development.
  • Agile software development model allows us to manage the software efficiently.

Disadvantages of Agile Process

  • In case of large projects, it is difficult to estimate the time and cost estimates at the beginning of software development.
  • No documentation is prepared, so keeping track of changes applied in each release becomes difficult.
  • Only experienced programmers can take part in agile process during developmental stages, new comers are not involved.

2.2  Examine agile methods which are now being used in the software development industries.

Lean and Kanban Software Development, Extreme Programming, Crystal Methodology, Dynamic System Development Model, Feature Driven Development and Scrum are some of the Agile Software Development Methodologies being used in software industries. Out of these Scrum is most common.Scrum is an agile methodology which is a lightweight agile project management framework with wide pertinence for managing and controlling software development product.

Task 3: Be able to apply ICONIX method to develop an information system

3.1 Produce an analyse and design document for a given scenario

  • Functional Requirement with use case modelling (Use case diagram and Use case scenario). Here is a use case diagram depicting student and Vice President of Research and enterprise as actors.

Application engineering assignment solution

  • A student gets registered into the system, can login with his details, edit personal information, view his assignments, view his markings, submit his assignments and research papers, access library, get peer feedback, attend conferences etc.
  • Vice president of research and enterprise monitors all these activities and manages accordingly.
  • Class diagram / Sequence diagram

Application engineering Assignment sample

Test cases for complete system

Student_Login:

S No.

Steps

Expected Result

Actual Result

1

Enter username

 

 

2

Enter Password

 

 

3

Click Submit button

Login successful, page gets redirected to home page.

 

Manage_details:

S No.

Steps

Expected Result

Actual Result

1

Follow login process as in above case.

Login successful, user enters the system

 

2

Open form

Form opens

 

3

Enter name, age, roll no, class, subjects

 

 

4

Click Submit

Data gets saved into the system

 

5

Click on edit, corresponding to form

 

 

6

Enter new age

 

 

7

Click Save button

Age gets saved into the system.

 

 

 

3.2 Evaluate the agile principles which you have used during the development process

Some key characteristics that are common in all Agile Applications are:
Participation of user at every stage of software development.

  • Any decision regarding software is considered from very member of the team including developers, testers and end users.
  • Requirements of the system to be developed can evolve, but the timeline is fixed, so planning has to be done accordingly.
  • Small incremental releases and iterations have to be reviewed.
  • Each feature or build has to be completed before moving to the next level.
  • Testing is an integral part of entire software development life cycle. Testing early reduces the cost of the entire project.

Task 4 - Compare and contrast the following concepts.

4.1 Traditional SDLCs vs. Rapid Application Development

Rapid Application development (RAD) model –
In RAD model, all modules or components of system are developed parallel as if they were small independent projects. These are time bound, customers can provide quick and when delivered as a prototype.
There are five phases in RAD –

  • Business Modelling
  • Data Modelling
  • Process Modelling
  • Application Generation
  • Testing

Advantages of RAD:

  • It reduces development time and cost.
  • Enhances component or module reusability.
  • Feedback of customer is encouraged.
  • Documentation that is created is very expensive.

Disadvantages of RAD:

  • To understand and gather client’s requirements, a robust team of developers and testers is required.
  • The system that is divisible into modules can only be developed using RAD
  • This approach is dependent upon modelling techniques.
  • This can only be applied to larger and big budget projects as cost of modelling and automated code generation is very high.

Software Development Life Cycle (SDLC) - It is the process or series of planned activities that software follows during its design and development.
There are six phases in every software / systems development life cycle:

  • Requirement Analysis
  • Design
  • Coding or Implementation
  • Testing
  • Deployment
  • Maintenance

Advantages of SDLC:

  • This is important for developers as it helps in estimating development time and cost and helps end users to measure the progress of the project.
  • Each single phase of SDLC has its own benefits. E.g. If something got missed in requirements phase then it can be caught in testing phase and corrected. Expected results can be matched up with actual results and thus a healthy application will be developed.
  • Output of each phase acts as input for the next phase, thus a formal review at end of each phase empowers developer with maximum management control.
  • SDLC helps us to create Software Requirement Specification (SRS) and SDS (Software Design Specification), which are important in design and development of the system.

Disadvantages of SDLC:

  • The customer or end user does not have any involvement in the phases of SDLC. Requirements are collected from him and incorporated into the application that is being developed.
  • It often happens that customers’ needs are misinterpreted by developers and end user gets a system as per the understanding of the developers.
  • Documentation (SRS + SDS) is expensive to develop.

4.2 Traditional Structure Methodologies vs. Traditional Object Oriented Methodologies

We can broadly divide the approaches of system development into two:

  • Traditional Structure Methodologies
  • Object oriented Methodology
    In Traditional Structure Methodologies, system is developed by assuming it as a constant process in which files, programs, data entities are defined. Examples: Software development life cycle, waterfall model etc.
    In Object Oriented Methodology, system is considered as an object or parts of system can be thought of as objects. Classes, entities, attributes are defined. Examples: Class diagrams, UML diagrams, Sequence diagrams etc.

4.3 Examine and critically evaluate at least three agile methods

Here we discuss three widely used agile methodologies:
Scrum Methodology – In this approach, work or application development is divided into small parts or sprints, i.e. periodic evaluation of the application to be developed. Sprints can be of 1 week, 2 week duration, i.e. work done in 1 week is evaluated by developers & users of system, and its advantages and limitations are discussed, any modifications are incorporated.
Dynamic Systems Development Model Methodology (DSDM) – This method, helps to provide right solution at right time. This is a scalable approach which focuses on early delivery of project within budget.
Joint Application Development (JAD) – This type of process includes, involving the client or end user in the development of application right from the beginning. Joint sessions of developers and users are set up, where they discuss the requirement at every stage and proceed subsequently.

Reference:

  • Software Development Life Cycle [Online]. [Accessedon
    13 December 2014]. Available on world wide web: http://istqbexamcertification.com/what-are-the-software-development-life-cycle-sdlc-phases/
  • Software Development Life Cycle [Online]. [Accessedon
    13 December 2014]. Available on world wide web: <http://www.tutorialspoint.com/sdlc/>
  • Types of black box testing [Online]. [Accessedon
    13 December 2014]. Available on world wide web: www.softwaretestinghelp.com/black-box-testing/
  • Advantages of Software Development Life Cycle [Online]. [Accessedon
    13 December 2014]. Available on world wide web: <http://www.slideshare.net/Kovair/benefits-of-software-development-life-cycle-sdlc-solutions>
  • Information System Development Methodology [Online]. [Accessedon
    13 December 2014]. Available on world wide web: http://www.myfloridacfo.com/Division/DIS/isdm/#.VIxykdKUc4M
  • Information System Development Methodology [Online]. [Accessedon
    13 December 2014]. Available on world wide web: http://www.itinfo.am/eng/software-development-methodologies/
  • Agile Methodology [Online]. [Accessedon
    13 December 2014]. Available on world wide web: < http://istqbexamcertification.com/what-is-agile-model-advantages-disadvantages-and-when-to-use-it/>
  • crumMethodology [Online]. [Accessedon13 December 2014]. Available on world wide web: http://agilemethodology.org