logo

Software Engineering Assignment: Requirements

   

Added on  2020-03-28

15 Pages3071 Words105 Views
 | 
 | 
 | 
Adaptive systems development methodology<Name><Institution>Question 1: Adaptive systems development methodology
Software Engineering Assignment: Requirements_1

Adaptive or Agile System Development Methodology is an approach to managing a softwareproject that embraces unpredictable changes to a project. Adaptive methodologies are highlyflexible, iterative and interactive techniques of establishing project requirements in InformationTechnology (IT) and engineering. Agile project management entails application of agilemethodologies in managing projects. These methodologies include Scrum, ExtremeProgramming (XP), DSDM and Feature Driven Development (FDD). These techniques promoteproject management process; that encourages the participation of all stakeholders, effectivecontrol, feedbacks and objective metrics (Moran, 2015). APM employs ideas from Agilesoftware development in project management. The core characteristics of Agile techniques isthat they all support iterative and incremental development. The project requirements andproposed solutions evolve systematically through cooperation between self-organizing, cross-functional teams. Agile Project Management endorses adaptive planning, time-boxed iterative approach, andevolutionary development while promoting quick and flexible responses to change. Thetechnique is based on the promotion of foreseen interactions between the stakeholdersthroughout the project life cycle (Beck et Al, 2013). The processes involved in the Agile projectmanagement are in line with the twelve principles of Agile Manifesto as put forward by Beck etal. (2013). The manifesto prioritizes customer satisfaction, flexibility in the developmentprocess, iterative development, cooperation between stakeholders, and effective communicationamong others. There are three key plays in an Agile Project Management; the owner, project manager and theproject team (Moran, 2015). Agile project management responsibilities are divided among thethree stakeholders. The owner is tasked with the responsibility of handling the business aspectsof the project - such as monitoring to ensure that the desired product is being built in the correctway, as well as making decisions about the given product. The manager, on the other hand,organizers the project team to optimize their productivity, organizes meetings, handles issues thatmay hinder the working of the team and does other managerial tasks for the project (Moran,2015). Finally, the team has the responsibility of developing the most optimal methods ofachieving the project goals.Agile methodologies are characterized by their adaptive nature. This approach facilitatesoptimization of the design of the intended solution by encouraging changes throughout theproject (Moran, 2015). Adaptive methodologies are therefore more preferred for projects withhigh levels of uncertainty. The dynamic nature of Adaptive methodologies facilitates continuouslearning while encouraging adaptation of the emergent state of the project. Extreme Programming (XP)
Software Engineering Assignment: Requirements_2

Extreme Programming is one of the agile software development methodologies. XP focus onimproving software quality and accommodation of new requirements from the customer. In buildingproducts, XP takes an incremental approach, with a continuous cycle of testing and revising(Kniberg, 2015). The main goals of the methodology are to produce high quality software andimprove the quality of life of developers. Extreme Programming is best suited for projects whererequirements are likely to change over the period of the project’s life (Rumpe & Schröder, 2014).The methodology encourages responsiveness towards the changing customer requirements. A vitalfeature required for the FFSL case since some requirements are bound to change to accommodate theviews of the sales persons. XP emphasizes on teamwork and singleness of purpose among thedevelopers, customers and managers; everyone becomes part of the team, and focuses oncontributing positively towards the delivery of quality software. Extreme programming improves the development process of software projects by; encouragingdevelopers to be accommodative to changing requirements, encourages feedback, simplicity andimproved communication (Kniberg, 2015). Advantages of Extreme ProgrammingEnables time and cost saving by eliminating unproductive activities, thus helping software developers focus on the coding aspect of the project (Rumpe & Schröder, 2014).Reduces project risk and failure while ensuring that the customer gets what he needs.XP process is “visible and accountable” with developers delivering what they commit to deliver.The methodology’s principles of simplicity and constant feedback helps in developing simple maintainable code and the feedbacks from sprints ensures developers keep on the right track (Kniberg, 2015).With XP developer’s satisfaction is high as the process is value-driven.The greatest advantage with XP is the Teamwork spirit, as all stakeholders work as a team focusing on delivering quality.Disadvantages of Extreme ProgrammingThe approach has the disadvantage of putting more focus on coding rather than design,which is equally important for software (Kniberg, 2015).Documentation process in XP is not adequate, thus software bugs are not welldocumented making it possible for such bugs to appear in future. Coding is done in pairs, leading to code duplication and redundancy (Kniberg, 2015).Quality control planning is not adequately implemented in XP methodologyFeature-driven development(FDD)
Software Engineering Assignment: Requirements_3

FDD is an incremental and iterative approach to the development of software. FDD combinesseveral software development best practices to form a unified whole. The model is driven andcentered on a client’s most value features of a system (Firdaus, Ghani, & Jeong, 2014). The mainobjective of this model is to deliver quality within the specified timeline. Feature-DrivenDevelopment is therefore a pragmatic, architecture-centric and client-centric approach (Firdaus,Ghani, & Jeong, 2014). The key processes that define an FDD project include;Developing an overall model: project teams concentrates on building an object modelfor the problem domain in a collaborative, iterative and cross functional way. Building a features list: Key features of the system are identified in form of user storyand then most valuable ones highlighted to guide the project. Planning by feature: this phase entails developing a working plan, which specifies theorder of implementing the desired features of the system. The main aspects taken intoconsideration during the planning includes; resource allocation, complexity and risks(Firdaus, Ghani, & Jeong, 2014). Designing by feature: Here, the main features and domain classes to be developed nextare identified by the chief programmer.Building by feature: the fifth and final phase of the methodology entails implementingthe classes and features identified at the design phase. Advantages of Feature Driven DevelopmentWith FDD a business focuses on creating a product, enabling businesses to focus on developing quality products (Firdaus, Ghani, & Jeong, 2014). Disadvantage of Feature Driven DevelopmentA major disadvantage with this approach is that it does not investigate the market for theproduct being developed, thus it may results in a product that does not have any marketdemand (Firdaus, Ghani, & Jeong, 2014). ScrumScrum is another agile software development methodology, designed for small projects. The general flow of a Scrum project is as follows;A client generates a list of prioritized requirements, referred to as a “Product Backlog” (Asghar, Bhatti, Tabassum, Sultan & Abbas, 2016)
Software Engineering Assignment: Requirements_4

End of preview

Want to access all the pages? Upload your documents or become a member.

Related Documents
Agile and Iterative systems development
|13
|2483
|364

System Analysis and Design | Report
|11
|1826
|72

Effectiveness of Agile Project Management Methodology
|12
|2907
|19

The Agile Methodology .
|19
|4543
|497

Agile and Iterative Methodologies assignment
|12
|2710
|197

Benefits and Drawbacks of Agile Software Development
|16
|4224
|63