System Analysis and Design
Table of Contents
TOC o “1-3” h z u Agile and Iterative Development PAGEREF _Toc515525968 h 3Scrum PAGEREF _Toc515525969 h 4Advantages of Scrum PAGEREF _Toc515525970 h 5Disadvantages of Scrum PAGEREF _Toc515525971 h 5Extreme Programming (XP) PAGEREF _Toc515525972 h 6Advantages of Extreme Programming PAGEREF _Toc515525973 h 7Disadvantages of Extreme Programming PAGEREF _Toc515525974 h 8Dynamic Systems Development Method (DSDM) PAGEREF _Toc515525975 h 8Advantages of DSDM PAGEREF _Toc515525976 h 8Disadvantages of DSDM PAGEREF _Toc515525977 h 9Feature-Driven Development (FDD) PAGEREF _Toc515525978 h 9Advantages of FDD PAGEREF _Toc515525979 h 9Disadvantages of FDD PAGEREF _Toc515525980 h 10Recommendation PAGEREF _Toc515525981 h 10Modelling and Diagramming PAGEREF _Toc515525982 h 11Event Table PAGEREF _Toc515525983 h 11Domain Class Diagram PAGEREF _Toc515525984 h 13Design Class Diagram PAGEREF _Toc515525985 h 14Use Case Diagram PAGEREF _Toc515525986 h 15Use Case Description PAGEREF _Toc515525987 h 16Bibliography PAGEREF _Toc515525988 h 18Appendix 1: Memo PAGEREF _Toc515525989 h 20
Agile and Iterative DevelopmentAgile development is a methodology used to develop a software and utilizes an iterative process of develop, plan and deploy to satisfying the changing requirements of a client while making sure prototypes are developed fast. In agile development case, the solutions and requirements emerge through cooperation between organized cross-functional teams. Agile concept supports a systematic project management process that promotes regular adaption and scrutiny. It supports teamwork, accountability, leadership and self-organization.
Iterative development is dividing a large application software development into smaller parts. Feature code is developed, designed and tested in recurrent cycles. Extra features can be designed, built and examined with each iteration until a full operational software application is developed and is ready to be distributed to clients. Iterative development is utilized together with incremental development in which a longer cycle of software development is broken down into small pieces that depend on each other. Incremental and iterative development are main practices in Agile development methodologies. The shorter cycle of development in agile methodologies known as sprint or iteration are limited to a particular time increment (time-boxed). Working code at the end of each iteration is expected that can be presented to a client. The different agile methodologies have similar ideology, practices and characteristics. But from a standpoint of implementation each has its recipe of tactics, practices and terminology. The following are some of the various methodologies of agile and iterative developments.
ScrumScrum is a lightweight framework of agile project management with extensive applicability for controlling and managing incremental and iterative projects of all kinds. Scrum has gathered growing popularity in the community of agile software development due to its proven productivity, its simplicity and ability to serve as a covering for different engineering practices supported by other methodologies of agile. The owner of the product works heedfully with the team to prioritize and identify functionality of a system in form of a product backlog. The product Backlog comprise of bug fixes, features, non-functional requirements, among others. Product owner drives priorities while the organized team sign-up and estimate to deliver transportable software increments during successive iterations, usually lasting a month. Once an iteration product Backlog is committed, only the team can add extra range of capabilities to the iteration. After delivering a sprint, if needed, the product Backlog is reprioritized and analyzed, and the next range of capabilities is chosen for the next iteration.
Advantages of ScrumScrum methodology assists an organization save money and time:
It allows project’s where the requirements documentation of a business is difficult to quantify to be developed successfully
Cutting edge, fasting moving developments can be tested and coded fast as errors can be easily corrected
It is a lightly managed methodology which emphasizes on regular updating of the work progress through frequent meetings. Therefore, there is clarity of development of the project
It is iterative in nature, as such, it needs constant user feedback
Due to continuous feedback and short Sprints, it can easily adapt to changes
Frequent meetings help in measuring individual productivity resulting in performance improvement of every member.
Disadvantages of ScrumUnless an exact deadline is set, the stakeholders of project management might be tempted to constantly demand for new range of capabilities to be delivered
If a task is not properly described, approximating project time and cost will be inaccurate
Lack of commitment from team members may result in project failure
It is only suitable for small projects as functions well with few team members.
Extreme Programming (XP)Extreme programming has evolved as one of the controversial and popular agile methodologies. XP is an organized approach that delivers high quality software continuously and quickly. It supports rapid feedback loops, continuous planning, high client involvement, close teamwork and continuous testing to deliver working software at regular intervals, usually 7 to 21 days. The original recipe of XP is established on four simple values: communication, courage, simplicity and feedback. It also has twelve supporting practices which include:
Customer Acceptance Tests
Collective Code Ownership
In XP, the development team and the client works closely to prioritize and define granular functionality units called User Stories. The team of development approximates, delivers and plans the best user stories in the form of tested, working software on a sprint by sprint basis. To increase productivity, the practices offer a supportive framework to ensure excellent software and guide a team
Advantages of Extreme ProgrammingThe methodology allows organizations to save time and costs needed for the realization of the project. XP concentrates on delivering the end products in good time. Besides, the teams of XP saves money since they do not use much documentation. They address their issues through debates inside the team
It focuses on simplicity. The codes created by the team using XP methodology are extremely simple and can be enhanced at any time
The entire XP process is accountable and visible. Developers are dedicated to complete and show progress
It encourages continuous feedback. It is important to listen and make timely adjustments required
XP helps in creating software faster due to frequent testing at the stage of development
XP contributes to employee retention and satisfaction.
Disadvantages of Extreme ProgrammingSome experts argue that XP concentrates on the code instead of the design. That is an issue since good design is essential for software applications as it assists a company sell themselves in the market of software.
XP does not check code quality assurance
It is unsuitable if programmers are situated in different regions
Dynamic Systems Development Method (DSDM)DSDM is established on nine major principles that basically base on active user involvement, frequent delivery, stakeholder collaboration, business value/needs, empowered teams and integrated testing. DSDM particularly declares fitness for business purpose as the basic measure for acceptance and delivery of a system, concentrating 80 percent on the system usefulness that can be distributed in 20 percent of the time. Requirements are controlled early in the project. Rework is developed into the process, and all changes in development must be transformable. Requirements are delivered and planned as iterations.
Advantages of DSDMOffers a method-independent process
Strict budget and time adherence
It insists on testing such that at least a single tester is expected to be on every team of project
Flexible regarding evolution of requirements
Incorporates shareholders into the process of development
Disadvantages of DSDMConcentration on RAD can result in decrease in code strength
Needs considerable user engagement
Needs skilled team of development in technical and business areas
Involves constant requirements development
Feature-Driven Development (FDD)Feature-Driven Development is a short-iteration, model-driven process. It starts with building an overall model structure. Then progresses with a two-week series build by feature, design by feature iterations. FDD uses the following practices to design the rest of the process of development around feature delivery:
Developing by feature
Clarity of results and progress
Domain Object Modeling
Advantages of FDDCan shift to bigger projects and acquire repeatable success
FDD is developed around a key set of industry-acknowledged excellent practices. Regular builds make sure there exist an updated system that can be presented to the customer and assist in pointing out source code integration errors for the features early
Clarity of results and progress: managers are assisted at directing project course correctly by appropriate, frequent and accurate progress reporting outside and inside the project levels.
Risk is reduced through design iterations and development of small segments
Disadvantages of FDDUnsuitable for small projects
High dependency on chief programmer. He or she serves as a lead designer, coordinator and mentor
Lack of written documentation.
RecommendationAFD company should adopt extreme programming methodology since it supports rapid feedback loops, continuous planning, high client involvement, close teamwork and continuous testing. Due to high client involvement, products are likely to satisfy requirements and expectations of the user, thus, resulting to lower expenses incurred by client services and increased sales.
Modelling and DiagrammingEvent TableEvent Event Type Trigger Source Activity/Use Case System Response/
Customer Registers on the CRM system Ext Customer registration Customer Filling in customer details Successful registration Customer
Customer login Temp Sign in Customer Login in to the system Successful login to the system Customer
Customer wants to check if clothe is available Ext Item inquiry customer Look up clothe availability Clothe availability details customer
Customer places an order Ext New order customer Create new order Real-time link
Customer cancels or changes an order Temp Order change request customer Update order Change confirmation
Order change details
Customer/ Management wants to check order status Temp Order status Enquiry Customer/ Management Look up order status Order status details Customer/ Management
Shipping fulfills order Ext Order fulfillment status Shipping Record order fulfillment Shipping Status Customer
Shipping identifies back order Temp Back order notice Shipping Record back order Back order notification Customer
Customer returns clothe Temp Order return notice Customer Create order return Return confirmation
Produce fulfillment summary reports Ext End of year, moth, week management Produce fulfillment summary reports Fulfillment summary reports management
Customer requests catalog Temp Catalog request Prospective customer Provides catalog information Catalog Prospective customer
Customer update account details Ext Customer account update notice Customer Update customer details Update details customer
Marketing wants to send promotional material to customer Temp Promotion package details Marketing Distribute promotional package Promotional package Customer
Domain Class Diagram
Design Class Diagram
Use Case Diagram
Use Case DescriptionUse Case Name Create new order
Scenario Customer creates new telephone order
Triggering event Customer calls AFD to purchase clothes on catalog
Brief Description When the customer calls to order, the sales person and system verifies the customer details, creates new order, adds the clothes to the order, confirms payment, creates order transaction, and finalizes the order.
Actors: Telephone, sales person, and customer
Related Use case Includes: check item availability
Stakeholders Sales department to provide primary details. Shipping department to check if the information provided is adequate for fulfillment. Marketing department to collect customer statistics for analysis of buying patterns
Preconditions Customer must exist, catalog, clothes, and inventory items must exist for the requested clothe design
Post conditions Order must be created, order transaction must be created for the order payment, and Inventory items must have the quantity on hand updated. The order must be associated with customer
Flow of activities Actor System
1. Sales person answers telephone and connects to customer
2. The sales person verifies customer information 2.1 Display customer information
3. Sales person initiates the creation of a new order 3.1 Create a new order
4. Customer request for an item to be added to the order
5. Sales person verifies the item (Checks availability) 5.1 Display item information
6. Sales person adds item to the order 6.1 add an order item
7. Repeat steps 4, 5, and 6 until all items are added to the order
8. Customer Indicates end of an order 8.1 Complete order
8.2 compute totals
9. Customer submits payment, sales person enters amount 9.1 Verify payment
9.2 Create order transaction
9.3 Finalize order
BibliographyJameson, A. (2013). Choice Architecture for Human-Computer Interaction. Foundations And Trends® In Human–Computer Interaction, 7(1–2), 1-235. doi: 10.1561/1100000028
Rasnacis, A., ; Berzisa, S. (2017). Method for Adaptation and Implementation of Agile Project Management Methodology. Procedia Computer Science, 104, 43-50. doi: 10.1016/j.procs.2017.01.055
DR.K.VANITHA, D. (2012). Customer Relationship Management on Customer Satisfaction. International Journal Of Scientific Research, 3(4), 1-3. doi: 10.15373/22778179/apr2014/240
Shankarmani, R., Pawar, R., S. Mantha, S., ; Babu, V. (2012). Agile Methodology Adoption: Benefits and Constraints. International Journal Of Computer Applications, 58(15), 31-37. doi: 10.5120/9361-3698
Goldsmith, R. (2010). The Goals of Customer Relationship Management. International Journal Of Customer Relationship Marketing And Management, 1(1), 16-27. doi: 10.4018/jcrmm.2010090402
Martins, P., ; Zacarias, M. (2017). An Agile Business Process Improvement Methodology. Procedia Computer Science, 121, 129-136. doi: 10.1016/j.procs.2017.11.018
Memmel, T., ; Obendorf, H. (2010). Agile + Usability. Agile Methoden, Usability Engineering, User Experience, User-Centered Design. I-Com, 9(1). doi: 10.1524/icom.2010.0008
Ritter, W. (2011). Benefits of Subliminal Feedback Loops in Human-Computer Interaction. Advances In Human-Computer Interaction, 2011, 1-11. doi: 10.1155/2011/346492
Santouridis, I., ; Veraki, A. (2017). Customer relationship management and customer satisfaction: the mediating role of relationship quality. Total Quality Management ; Business Excellence, 28(9-10), 1122-1133. doi: 10.1080/14783363.2017.1303889
Steiner Burkhardt, H. (2016). User Experience in Libraries: Applying Ethnography and Human-Centered Design. Weave: Journal Of Library User Experience, 1(5). doi: 10.3998/weave.12535642.0001.505
Sun, W., ; Schmidt, C. (2018). Practitioners’ Agile-Methodology Use and Job Perceptions. IEEE Software, 35(2), 52-61. doi: 10.1109/ms.2018.1661333
Appendix 1: MemoTo: Managing Director
From: Sheela Brown
Date: Wednesday, May 30, 2018
Re: Information Systems
In the current world, clients have various choices and are becoming more demanding and knowledgeable. As such, the power has moved to consumers (Goldsmith, 2010). Australian Fashion Designs (AFD) company have recognized that customers need to be treated with care. They now have to determine various ways to handle their clients efficiently to be to retain the current customers and attract new ones (DR.K.VANITHA, 2012). AFD need to concentrate on implementing and building CRM application will change several aspects of the current business and new business opportunities, business models and processes will be created. AFD have been challenged to reconsider the most fundamental business relationship between its clients. To conquer the challenge, AFD is considering adopting User Centred Design (UCD) approach and setting a plan for the development of the Human Computer Interaction (HCI).
User Centered Design (UCD)
UCD is a repetitive design process where designers concentrate on the end-users and their requirements in every design process phase. USD entails engaging users through the entire process of design through several design and research methods so as to generate accessible and highly usable products for them. UCD require designers to apply a combination of generative (for instance, brainstorming) and investigative (for instance, interviews and surveys) tools and methods to create an understanding of needs of the user.
Applying UCD approach
Each UCD approach iteration will involve four different phases. First, designers will try to understand the users’ context when using a system. Later, requirements of the user will be identified and specified. A design phase will follow, where the team of design will develop solutions. The team will then proceed to the phase of evaluation and analyze the evaluation result against the user’s requirements and context so as to examine the performance of the design such as its level of closeness that suits the specific context of the user and meets all of their needs. The team will then make additional iterations of these four phases, constantly until the results of evaluation are met.
In UCD, designers build their project on a clear understanding of tasks, users and environments. The process purpose is to address and capture the entire user experience, as such, the team of design must involve professionals from different disciplines, for instance, psychologists, ethnographers, hardware and software engineers, as well as stakeholders, domain experts and the users. Experts may evaluate the developed design using design criteria and guidelines. Nevertheless, a vital point to measuring the whole user experience, users must be involved by designers for evaluation, and besides, UCD requires constant monitoring of use.
When users are closely involved, products are likely to satisfy requirements and expectations of the user. It results to lower expenses incurred by client services and increased sales.
Benefits of Investing in UCD
Involving users in each stage of the process of design is an investment of design team resources and effort. As such, it is important to understand the benefits of UCD approach. Focusing on humans leads to additional expenses, however, it is worthwhile to take time and interact with people and create prototype designs (Wilson & Carmenza, 2015). User-Centered Design pays off in the following ways:
Designers modify products for users in particular context and with particular tasks, therefore minimizing the likelihood of situations with high human error risk evolving. UCD result to more secure products.
Close interaction between the user and the designer implies that a deeper sense of understanding arises. It is important in producing ethical designs that respect the quality of life and privacy
By concentrating on all product users, designers can realize the diversity of human values and cultures via UCD, a step in the correct direction of developing worthwhile businesses.
Human-Computer Interaction (HCI)
HCI is a study concentrating on the computer technology design and, in specific, the communication between the computers ad users. Initially, HCI was concentrating on computers, however, it has broadened to cover nearly all forms of design of information technology. HCI is an extensive field which go beyond sectors such as user interface design, user-centered design and user experience (UX) design. In different ways, Human-Computer interaction was an indicator of UX design.
HCI practitioners appear to be more involved and focused in creating observational understanding of the users and scientific research. UX designers, on the other hand, are involved and focuses in developing services and products such as websites and smartphone apps. In spite of the difference, the products experimental considerations that UX designers are associated with have a direct connection to the HCI specialist findings about the mindset of the users.
One essential factor of HCI that AFD firm should consider while designing HCI is that various users create various mental models or conceptions about their interactions and have various ways of keeping skills and knowledge and learning (different intellectual style, for instance, right-brained and left-brained individuals). Besides, national and cultural variations play a part. Another thing that AFD company should consider in setting up HCI is that the technology of user interface changes quickly, providing new communication possibilities to which past research results may be insignificant (Jameson, 2013). Another consideration is that the preference of the user change as they constantly learn new interfaces. As such, interactions between humans and computers should be understood as interaction between two people. To develop an intuitive user experience, emotional design, human psychology and specialized design processes is needed.