Você está na página 1de 11

Course Code Course Title

Question 1:

: :

MCS-034 Software Engineering

Question 1: Suppose that you need to develop an Employee Information System (EIS) for an organization whose employee strength is 100000. Now, perform the following activities for EIS. Make assumptions, wherever necessary. (a) Which SDLC model will you choose? Justify your answer Hint: Defining A System Collections of components, which are interconnected, and work together to realize some objective, form a system. There are three major components in every system, namely input, processing and output.

INPUT

Processing

OUTPUT

1.1 Systems Life Cycle The sequencing of various activities required for developing and maintaining systems in an ordered form is referred as Systems Life Cycle. It helps in establishing a system project plan as it gives overall list of process and subprocesses required for developing any system. Here, the systems life cycle will be discussed with reference to the development of Employee Management System. Broadly, following are the different activities to be considered while defining the systems development cycle for the said project: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Problem Definition Systems analysis Study of existing system Drawbacks of the existing system Proposed system Systems Requirement study Data flow analysis Feasibility study Systems design Input Design (Database & Forms) Updation Query /Report Design Administration Testing Implementation Maintenance

(b) List the functional and non-functional requirements. Hint: System Specification Every computer system consists of three major elements. 1. The Hardware 2. Application Software such as visual studio. 3. Operating system For successful operation of the package following must be kept in mind: Too many packages should not be used, as very few systems may have all those packages installed due to memory problem. Thus, the compatibility of the system developed will get reduced. Hardware Requirements Intel Pentium processor at 500 MHz or faster, minimum of 364 MB available disk space for installation (including IBM SDK), minimum of 256 MB memory,512 MB recommended, CD-ROM drive. Software Requirements The application software is developed in ASP, JavaScript, and HTML. The central database is based on MS SQL Server 2000. The system can be accessed over the Internet connecting all the Internet .Clients equipped with webbrowsers can access the system from any of the Intranet Nodes. The following sets of functional requirements were created in cooperation with Helpdesk management and student staff. These requirements describe the initial business processes that were to be handled by the Employee Management System. The requirements were categorized into the system components that reflect the primary tasks associated with employee management. Nonfunctional Requirements: Supports Roughly 50 Users Protects personal data 99% up time Cross browser compatibility Logging o Timesheets o Hiring Backups System must be well documented o Code o User Functions Helpdesk Maintainable server Additional Functionality Future system development includes implementation of the hiring process and review management. These functions are designed and described throughout this document and stub classes have been created for the functionality in the code base. In addition, prior to utilization of the system at the WPI Helpdesk it will need to be ported over to a local server. This is to ensure the security of the data contained in the system such as personal and contact information on each employee. Testing was successfully completed to validate that the application can be run on a local Apache Tomcat server. Operating on a local server will allow for storage to a WPI MySQL database. (c)Propose a schedule for the project completion. Draw Gantt and Pert charts. Hint: A Project Evaluation Review Technique (PERT) chart puts together the identified work tasks in the logical, most effective order. PERT charts, often called flow charts, illustrate the anticipated flow of completion and

relationship(s) between and among the different activities in the project. The Critical Path Method (CPM) involves identifying the projects critical activities (i.e., activities that should not be delayed otherwise, the whole project will be delayed) based on the PERT chart. You can use Microsoft Project (a software tool that can be incorporated in Microsoft Office) to create the PERT charts and do the critical path analysis.

Gantt charts, which are named for their inventor, are bar charts that display the project status and results of PERT in a format that can be readily understood by those not involved in the details of the project. GANNT Chart for the project

(d )Estimate cost of the project. Hint: Software Cost Estimation is widely considered to be a weak link in software project management. It requires a significant amount of effort to perform it correctly. Errors in Software Cost Estimation can be attributed to a variety of factors. Various studies in the last decade indicated that 3 out of 4 Software projects are not finished on time or within budget or both Who is responsible for Software Cost Estimation? The group of people responsible for creating a software cost estimate can vary with each organization. However the following is possible in most scenarios - People who are directly involved with the implementation are involved in the ..estimate. - Project Manager is responsible for producing realistic cost estimates. - Project Managers may perform this task on their own or consult with ..programmers responsible. - Various studies indicate that if the programmers responsible for development ..are involved in the estimation it was more accurate. The programmers have ..more motivation to meet the targets if they were involved in the estimation ..process. Following scenarios are also possible - An independent cost estimation team creates an Estimate - Independent Experts are given the Software specification and they create a ..Software Cost estimate. The Estimation team reviews this and group ..consensus arrives at a final figure. Factors contributing to inaccurate estimation Scope Creeps, imprecise and drifting requirements New software projects pose new challenges, which may be very different from ..the past projects. Many teams fail to document metrics and lessons learned from past projects

Many a times the estimates are forced to match the available time and ..resources by aggressive leaders Unrealistic estimates may be created by various political under currents Impact of Under-estimating: Under-Estimating a project can be vary damaging - It leads to improper Project Planning - It can also result in under-staffing and may result in an over worked and ..burnt out team - Above all the quality of deliverables may be directly affected due insufficient ..testing and QA Missed Dead lines cause loss of Credibility and goodwill The Estimation Process: Generally the Software Cost estimation process comprises of 4 main steps: 1) Estimate the size of the development product. This comprises of various sub-steps or sub tasks. These tasks may have been done already during Requirement Analysis phase. If not then they should be done as a part of the estimation Process. Important thing is that they should be done to ensure the success of the Estimation Process and the Software Project as a whole a) Create a detailed Work Break Down Structure. This directly impacts the accuracy of the estimate. This is one of the most important steps. The Work Break down structure should include any and all tasks that are within the scope of the Project, which is being estimated. The most serious handicap is the inability to clearly visualize the steps involved in the Project. Executing a Software Project is not just coding. b) The work Break down structure will include the size and complexity of each software module that can be expressed as number of Lines of Code, Function Points, or any other unit of measure c) The Work Break down structure should include tasks other than coding such as Software Configuration Management, various levels and types of Testing, Documentation, Communication, User Interaction, Implementation, Knowledge Transition, Support tasks(if any) and so on d) Clearly indicate or eliminate any gray areas (vague/unclear specifications etc.) e) Also take into account the various Risk Factors and down times. There are many different Risk Factors involved Technical aspects such as availability of the Environment, Server/Machine uptime, 3rd party Software Hardware failures or Human aspects Employee Attrition, Sick time, etc. Some of them may seem to be overkill but real world experience shows that these factors affect the time lines of a project. If ignored they may adversely impact the Project timelines and estimates. 2) Estimate the effort in person-hours. The Result of various tasks involved in step 1 is an effort estimate in person hours. The effort of various Project tasks expressed in person-hours is also influenced by various factors such as: a) Experience/Capability of the Team members b) Technical resources c) Familiarity with the Development Tools and Technology Platform 3) Estimate the schedule in calendar months The Project Planners work closely with the Technical Leads, Project Manager and other stakeholders and create a Project schedule. Tight Schedules may impact the Cost needed to develop the Application. 4) Estimate the project cost in dollars (or other currency) Based on the above information the project effort is expressed in dollars or any other currency. Measuring the Size/Complexity of the Software Program: This is one of the most elusive aspects in the Software Cost Estimation Process. There are different methodologies for arriving at and expressing the size/complexity of the Software Program. Some of the popular ones are 1) Function Points 2) Lines of Code 3) Feature Points 4) Mk II function points 5) 3D Function Points 6) Benchmarking

We briefly explain each of the above methods in the next few pages Function Points The Function Point methodology was developed by Allan Albrecht at IBM. This methodology is based on the belief that the size of a software project can be estimated during the requirements analysis. It takes into account the inputs and outputs of the system. Five classes of items are counted: 1. External Inputs 2. External Outputs 3. Logical Internal Files 4. External Interface Files 5. External Inquiries The Total Function Point count is calculated based on the a) Counts for each of these items b) The weighting factors and adjustment factors in this methodology What are function points and why count them? Function points are a measure of the size of Software applications and the projects that build them. The size is measured from a functional, or user, point of view. It is independent of the computer language, development methodology, technology or capability of the project team used to develop the application. Function points are not a perfect measure of effort to develop an application or of its business value, although the size in function points is typically an important factor in measuring each. Since the function point count for an application is independent of the technology used to develop the application it can be used for almost all types of applications such as GUI, OOP, Client Server, etc. Since function points are based on screens, reports and other external objects, this measure takes the users' view. In these days of outsourcing and other confusion regarding the role of IT in an organization, understanding the users' view is of critical importance! Lines of code: Counting lines of code measures software from the developers' point of view The number of lines of code is the traditional way of measuring the application size. Many people consider this method as irrelevant now. There are technical problems with the lines of code measure. It is difficult to compare lines of code when a mix of technologies is used. There is no standard definition of what a line of code is. A Program may have blank lines, comments, data declarations, and multi-line statements. Feature points Methodology: It was developed by Software Productivity Research (SPR) in 1986. This technique takes into account the number of algorithms used in the application. It is compatible with the Function Points Methodology. The size calculated by the two methods for an ordinary transactional program would be the same. Feature Points Methodology is generally more useful for estimation in real-time process control, mathematical optimization and various embedded systems. The estimates are higher and considered more accurate in these cases. Mk II function points Methodology: This was developed Charles Symons in 1984 at Nolan, Norton & Co., part of KPMG Management Consulting. The Original Function Point approach suffers from the following weaknesses: It is often difficult to identify the components of an application. The original Function Point Methodology assigned weights to function point ..components based on "debate and trial." The original Function Point Methodology did not provide a means of accounting ..for internal complexity. Feature points technique addresses these issues. When small systems are combined into larger applications. Function ..Points Methodology makes the total function point count less than the sum ..of the components. MKII decomposes the application being counted into a collection of logical transactions. Each transaction consists of an input, a process and an output. For each transaction, Unadjusted Function Points (UFP) become a function of the number of input data element-types, entity-types referenced and output data element-types. The UFPs for the

entire system are then summed. Mk II is widely used in the UK, India, Singapore, Hong Kong and Europe. Users include governmental organizations, finance, insurance, retail and manufacturing.

1 Hint:

(e) Develop complete SRS.

Employees are the most valuable and dynamic assets of an organization. The Employee Information System is an extensive and comprehensive system that maintains and tracks information pertaining to all the employees in an organization. This system has a wide range of masters, which provide high degree of customization and allow the user to setup the system as per the requirements of the organization. It captures comprehensive details pertaining to all the employees in the organization. It maintains the skill inventory of an organization. There is a provision for keeping track of various types of transfers, including inter-location, inter-circle and inter-company transfers; the workflow involved during the transfer process is also automated. The system also tracks exit of an employee from the company along with the reasons for the exit. The system also keeps track of appraisals and promotions. There is provision for leave and attendance maintenance. The system is fully integrated with Recruitment, Payroll and Training Systems. Extensive and effective reporting functions provide a snapshot of employee information. Sailent Features 1 Multi-site support 1 1 1 1 Multi-tier security provides authorization and control at various stages. Exhaustive and comprehensive analysis via a wide range of reports and graphs Designed using the Unified Modeling Language (UML) which is a leading OOAD technique Interface with other packages such as Oracle Financials

1 1 1

Seamless integration with other Windows-based applications Meets all major requirements, provides increased availability of analyzed information Powerful backup and recovery features

Introduction Problem introduction or problem stating is the starting point of the software development activity. The objective of this statement is to answer: Exactly what must the system do? The software project is initiated by the clients need. In the beginning, these needs are on the minds of various people in the clients organization. The analyst has to identify the requirements by talking to the people and understanding to their needs .it gores without saying that an accurate and through understanding of Software requirements are essentials to the success of software development effort. all further development like system analysis, System design and coding will depend on how accurate and well understood the requirements are poorly analyzed and specified software will disappoint the user and will bring brief to the developer. No matter how well designed and well coded the software is. Software requirement appears to be a relatively simple task, but appearances are often deceiving. Chances of misinterpretation are very high, ambiguity is probable and communication gap between customer and developer is bound to bring confusions. Requirement understanding begins with a clear and concise heading stating in a sentence the task to be performed. Then Requirements are described in a technical manner in precise statements. Project Scope Without an employee management system, its a tedious job for the Human Resource department of any company. Employee Management system will store all the details of the employees including their background information, educational qualifications, past experience, performance in the company & data related to their hiring. Itd be possible for HR executives & top brass of the company to find all information about an employee in just a few seconds. Itll also help in making business strategies & achieving corporate goals as itd be easier & faster for HR executives to make teams for various projects on the basis of educational qualification, past experience & performance.Optimum utilization of resources will thus inevitably lead to profit. Itll also help in firing the employees who wont perform well & bring star performers to the front so that the HR department can make sure they wont leave the company. Technology Exploration Upon completion of the requirements for the application we began to review the many Web technologies that were available to us. We soon discovered that the days of simple HTML and JavaScript were long over and a plethora of competing technologies presented themselves as viable options. This provided an opportunity to research the benefits and drawbacks of each technology and determine which might be the most viable and appropriate solution for our project. Our first step was to catalog the positives and negatives of each technology to determine what role they could play in our application. One of the first technologies we explored was Ruby on Rails. However, it was soon discovered that Rubys age of being the prime Internet technology had already passed. Our research of these technologies, in conjunction with an understanding that the framework generated within a Ruby on Rails application would be too cumbersome for our project, encouraged us to continue our exploration of other technologies. The next technology to receive a great deal of experimentation and even system modeling and demo creation from us was Adobe Flex. Having explored Adobe Flex in conjunction with Java Spring framework while interning at Fidelity over the summer, Additionally, as Adobe Flex products are compiled into Flash there was some concern as to the cross platform and mobile capability. 2.1 Major Functions 1. Employee Management The function of the system will be managing Employees at various field offices from the Head Quarter .It manages information about Employees at various Field offices. It manages information regarding Human Resources through field offices. So, that manpower can be monitored at Head Quarter.

2.2 METHODOLOGY TO BE USED CARRYING OUT THE STUDY 1 Studying the existing system. This will involve the amount of information, the manpower equipment space and other resources used for the information storage. 2 After analysing the existing setup this study would suggest a new management setup. The benefits and disadvantages of existing and new system would be critically revised. 3 Cost Benefit Analysis study will done. 4 The database structure and information storage retrieval process will also be studied and a new system for faster response using operation research techniques will be designed. 2.3 BUSINESS PROCESSES 2.4 Existing System The existing system comprises of a system in which details are to be manually handled. This is not user friendly. 2.5 The proposed system It will be able to manage information about Employee in more user friendly way. This system will manage Employees information at various field offices. User ID and password has been given to all the field offices so that they can enter their employees information into central database. Their access to the central database is restricted to their information only. Various reports based on the data entered by employees at field offices are generated at Head Quarter. These reports are helpful in Manpower management decisions. 1 2 (f) Develop test plan document.

Hint: Objectives of Testing: This section introduces the concept of testing and how important is, for the successful implementation of the project. Different phases of testing are described along with the level of testing incorporated in this particular project. Testing is vital to the success of any system. Testing is done at different stages within the phase. System testing makes a logical assumption that if all phases of the system are correct, the goals will be achieved successfully. Inadequate testing at all leads to errors that may come up after a long time when correction would be extremely difficult. Another objective of testing is its utility as a user-oriented vehicle before implementation. The testing of the system was done on both artificial and live data. Testing involves operation of a system or application under controlled conditions and evaluating the results (e.g., if the user is in interface A of the application while using hardware B and does C, then D should not happen). The controlled conditions should include both normal and abnormal conditions. Typically, the project team includes a mix of testers and developers who work closely together, with the overall QA processes being monitored by the project managers. Types of Testing Black Box Testing Also known as functional testing, this is a software testing technique whereby the tester does not know the internal working of the item being tested. Black-box test design treats the system as a black-box, so it does not explicitly use knowledge of the internal structure. Black-box test design is usually described as focusing on testing functional requirements. Synonyms for black-box includes: behavioral, functional, opaque-box and closed-box. White Box Testing White box test design allows one to peek inside the box, and it focuses specifically on using internal knowledge of the software to guide the selection of test data. Synonyms for white-box include: structural, glass-box and clear-box. Condition Testing An improvement over White-box testing, the process of condition testing ensures that a controlling expression has been adequately exercised whist the software is under test by constructing a constraint set for every expression and then ensuring that every member on the constraint set is included in the values whish are presented to the expression Data Life-Cycle Testing It is based upon the consideration that in the software code, a variable is at some stage created, and subsequently may have its value changed or used in a controlling expression several times before being destroyed. If only locally declared Boolean used in control conditions are considered then an examination of the sources code will indicate the place in the source code where the variable is created, places where it is given a value is used as a part of a control expression and the place where it is destroyed. This approach to testing requires all possible feasible lifecycles of the variable to be covered whilst the module is under test.

Unit Testing The purpose of this phase is to test the individual units of the developing software component. This phase is recursive and is to be repeated, as many as there are, levels of testing. In the DGLW project, each individual form has been tested using techniques of testing namely: Client side testing using JavaScript. Each individual form has been validated so that user enters only valid data at every time. Functional Testing: This is done for each module / sub module of the system. Functional testing serve as a means of validating whether the functionality of the system Confers the original user requirement i.e. does the module do what it was supposed to do? Separate schedules were made for functional testing. It involves preparation of the test data, writing of test cases, testing for conformance to test cases and preparation of bugs listing for non-conformities. System Testing: System testing is done when the entire system has been fully integrated. The purpose of the system testing is to test how the different modules interact with each other and whether the entire system provides the functionality that was expected. System testing consists of the following steps: 1 a) Program Testing 2 b) String Testing 3 c) System Testing 4 d) System Documentation 5 e) User Acceptance Testing Various Levels Of Testing Before implementation the system is tested at two levels: Level 1 Level 2 Level 1 Testing (Alpha Testing) At this level a test data is prepared for testing. Project leaders test the system on this test data keeping the following points into consideration: Proper error handling Exit Pints in code Exception handling Input / Output format Glass box testing Black box testing If the system is through with testing phase at LEVEL 1 then it is passed on to LEVEL 2. Level 2 Testing (Beta Testing) Here the testing is done on the live database. If errors are detected then it is sent back to LEVEL 1 for modification otherwise it is passed on to LEVEL 3. This is the level at which the system actually becomes live and implemented for the use of END USERS. We have also checked the proposed system for: Recovery & Security A forced system failure is induced to test a backup recovery procedure for file integrity. Inaccurate data are entered to see how the system responds in terms of error detection and protection. Related to file integrity is a test to demonstrate that data and programs are secure from unauthorized access. Usability Documentation & Procedure: The usability test verifies the user-friendly nature of the system. This relates to normal operating and error-handling procedures. Quality Assurance Proper documentation is must for mainframe of any software. Apart from In-line documentation while coding. Help coding, help files corresponding to each program were prepared so as to tackle the person-dependency of the existing system. System Implementation During the implementation stage the system is physically created. Necessary programs are coded, debugged and documented. A new hardware is selected, ordered and installed. Installation

The Application installation scripts have to be generated from the current server where the application source code is saved and installed in the main server from where the application is to be run. This was done using a special code, which generates all SQL-Statements to insert preliminary data (like menu entries, code in code directories etc) at server and the operational modules of the application made available to the end users successfully. Implementation The system is still under construction few reports are yet to me made after that this system will be implanted at client side. Users will be given a training to use the package and special workshops are conducted by the NIC for the purpose. And according to their feedback the changes are implanted in the software. 1 2 (g) What are the challenges in performing the tasks mentioned from (a) to (f) above due to the employee strength being 100000. Hint: When talking about the vast field of Information Systems there is not just one pressing issue, there are three: Accuracy, Usability, and Time. Without the combination of these three factors a business would go under in the matter of months. The first of these three and probably the most important of these is the accuracy of the information. The information that you provide someone with in order to make vital decisions must be precisely accurate. If one piece of data is incorrect it could mean the difference between life and death, literally. For example, if a doctor receives false information about a patients allergies he may give that patient medicine that could eventually kill them. Another recent instance where inaccurate information caused a catastrophe is with Enron. They falsified financial information causing the company to collapse. If a news station were to give a report that was invalid, they would lose their credibility and respect from the people. Accuracy is a must when it comes to information that is provided to make decisions of any kind. Another major issue involving information systems is the informations usability. If the business uses software to access the information it has to be easy to use and understand for the end-user as well as the executives. The information needs to be easily accessible from the hardware where it is stored. Also, if the information is generated into a report form of some kind, the report must be made so that it can be interpreted effortlessly in order to make precise decisions. The information provided should have value to the decisions at hand. The final of the three most significant challenges of the field of Information Systems is the time factor. As time progresses everything is built bigger and faster and people seem to be always operating at a faster pace, therefore information needs to be received at a faster rate. If a person or business does not get the information in time to make a prompt decision they could lose out on many opportunities. This concept all started when the phone was introduced and people could be connected to each other in an instant, instead of waiting a week for a letter in the mail. Now as the internet has evolved, people and businesses can send documents and other information to one another in matter of seconds, causing decision-making times to decrease dramatically. A good example of this high information transfer rate is a cash register. At Sams Club, where I work, within one minute the computer can check on the members status, scan the items decreasing the inventory, calculate the total, send the transaction to the database, verify the members credit card, check, or debit card, and even connect to a bank and pre-approve them for another credit card. As people remain to progressively become more frantically fast paced the challenge of information getting to them will need also to become faster. These three aspects of Information Systems must be used in conjunction with one another. Information may be received quickly and easy to use, but if it is inaccurate it is worthless. Just the same if the information is either too slow or incomprehensible it is useless as well. Being an information services provider, we especially understand the importance of speed, accuracy, flexibility, technology and the highest level of customer service as being key components of a successful marketing strategy in a competitive environment, states Berkshire Information Systems Inc. The biggest challenge of these three issues is combining them together in an efficient effective manner.

Você também pode gostar