960 likes | 1.18k Views
Agenda of Session Overview. Software EngineeringSoftware Process iterationSoftware process modelsSoftware Testing Software ToolsSoftware EvolutionHistoryClient-Server ModelWeb TechnologiesJargons. What is software?. Definition: A computer program, which provides the instructions which
E N D
1. KKMS based onSoftware Engineering & Evolution
2. Agenda of Session Overview Software Engineering
Software Process iteration
Software process models
Software Testing
Software Tools
Software Evolution
History
Client-Server Model
Web Technologies
Jargons
3. What is software? Definition:
A computer program, which provides the instructions which enable the computer hardware to work. System software, such as Windows or MacOS, operate the machine itself, and applications software, such as spreadsheet or word processing programs, provide specific functionality.
4. Types of Software Software Classifications:
System software operating systems, drivers, compilers, etc.
Application software Custom business apps.
Engineering/Scientific software Mentor Graphics, ANSYS.
Embedded software Cell phones, PDAs.
Product software Word, Excel.
Web Applications
Artificial Intelligence software
5. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production
Software engineers should
adopt a systematic and organised approach to their work
use appropriate tools and techniques depending on
the problem to be solved,
the development constraints and
the resources available
6. What is a software process? A set of activities whose goal is the development or evolution of software
Generic activities in all software processes are:
Specification - what the system should do and its development constraints
Development - production of the software system
Validation - checking that the software is what the customer wants
Evolution - changing the software in response to changing demands
Examples of process perspectives:
Workflow perspective represents inputs, outputs & dependencies
Data-flow perspective represents data transformation activities
Role/action perspective represents the roles/activities of the people involved in software process
7. How Programs Are Usually Written
8. Generic Software Process Models
9. Waterfall model problems The drawback of the waterfall model is the difficulty of accommodating change after the process is underway
Inflexible partitioning of the project into distinct stages
This makes it difficult to respond to changing customer requirements
Therefore, this model is only appropriate when the requirements are well-understood
10. Spiral development Process is represented as a spiral rather than as a sequence of activities with backtracking
Each loop in the spiral represents a phase in the process.
No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required
Risks are explicitly assessed and resolved throughout the process
11. Spiral model of the software process
12. Spiral model sectors Objective setting
Specific objectives for the phase are identified
Risk assessment and reduction
Risks are assessed and activities put in place to reduce the key risks
Development and validation
A development model for the system is chosen which can be any of the generic models
Planning
The project is reviewed and the next phase of the spiral is planned
13. The testing process
14. Testing stages Unit testing
Individual components are tested
Module testing
Related collections of dependent components are tested
Sub-system testing
Modules are integrated into sub-systems and tested. The focus here should be on interface testing
System testing
Testing of the system as a whole. Testing of emergent properties
Acceptance testing
Testing with customer data to check that it is acceptable
15. What is CASE ? (Computer-Aided Software Engineering) Upper-CASE
Tools to support the early process activities of requirements and design
Lower-CASE
Tools to support later activities such as programming, debugging and testing
16. Functional tool classification
17. What are the costs of software engineering? Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs
Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability
Distribution of costs depends on the development model that is used
18. What are the attributes of good software? Maintainability
Software must evolve to meet changing needs
Dependability
Software must be trustworthy
Efficiency
Software should not make wasteful use of system resources
Usability
Software must be usable by the users for which it was designed
19.
Software Evolution
20. Historical Evolution of Software Industry 1968-1980:
70's Development of technical project management technologies
Cost estimation ,COCOMO ,Detection of risky factors (software complexity measures) , database technologies
1980-1990:
Appearance of prototyping technologies: Water fall model paradigm was discarded because it turned out to be impossible to define users' requirement perfectly.
1985-1995:
Development of CASE(Computer Aided Software Engineering) tools
Software Process ( Process programming ,CMM by SEI ,SPI(Software Process Improvement) activities )
Integrated Environments ? Tool Integration
1985-1999:
Object-oriented technologies; Distributed Computing; Microsoft culture
21. Emergence of Software Engineering Early Computer Programming (1950s):
Programs were being written in assembly language and were limited to about a few hundreds of lines of assembly code.
High-Level Language Programming (Early 60s):
High-level languages such as FORTRAN, ALGOL, and COBOL were introduced.This reduced software development efforts greatly.
Control Flow-Based Design (late 60s):
Size and complexity of programs increased further and programmers found difficulty to write cost-effective and correct programs. Flow charting technique was developed. only three programming constructs are sufficient to express any programming logic:sequence (e.g. a=0;b=5;); selection (e.g.if(c=true) k=5 else m=5;) ;iteration (e.g. while(k>0) k=j-k;)
Data Structure-Oriented Design (Early 70s):
It is important to pay more attention to the design of data structures of a program than to the design of its control structure, called data structure-oriented design techniques.
Data Flow-Oriented Design (Late 70s):
Data flow-oriented techniques advocate that the data items input to a system must first be identified, to produce the required outputs.
22. Data Flow Model of a Car Assembly Unit [70s]
23. Object-Oriented Design (80s) Object-oriented technique:
an intuitively appealing design approach:
natural objects (such as employees, pay-roll-register, etc.) occurring in a problem are first identified.
Relationships among objects:
such as composition, reference, and inheritance are determined.
Each object essentially acts as a data hiding (or data abstraction) entity.
24. Evolution of Design Techniques
25. Evolution of Other Software Engineering Techniques life cycle models,
specification techniques,
project management techniques,
testing techniques,
debugging techniques,
quality assurance techniques,
software measurement techniques,
CASE tools, etc.
26. Client/Server systems Operate in a networked environment
Client Workstation (usually a PC) that requests and uses a service
Server Computer (PC/mini/mainframe) that provides a service. For DBMS, server is a database server
28. Example Web Browsing A classic example of the client server model is the World Wide Web. Which relies on the Internet to transfer data
A set of web servers hold HTML web pages on disk and provide them to clients web browsers on demand.
This is termed a 2 tier model because the web server does not directly rely on other servers
The server is called the application tier
The client is called the presentation tier
29. Three-tier architectures In general, these include another server layer in addition to the client and database server
This additional server may be used for different purposes
Often application programs reside on the additional server (the application server)
31. Advantages of three-tier architectures Scalability middle tier can be used to reduce the load on a database sever by using a transaction processing (TP) monitor to reduce the number of connections to a server, and additional application servers can be added to distribute application processing
Technological flexibility easier to change DBMS engines middle tier can be moved to a different platform. Simplified presentation interfaces make it easier to implement new interfaces
Long-term cost reduction use of off-the-shelf components or services in the middle tier can reduce costs, as can substitution of modules within an application rather than a whole application
32. Paradigm Shift in Business Trends
Before 2000 After 2000
Cost reduction Profitable growth
Fast Faster
Self contained Globalization
Internal focus Customer focus
Economies of Scale One-to-One relationships
Technology is an afterthought Technology is critical to the business
33. A Thought ! Why need a Web Site ?
You should at the very least have a presence on the Web so that customers, potential employees, business partners and perhaps even investors can quickly and easily find out more about your business and the products or services you have to offer.
What is e-Commerce ?
Electronic Commerce is merely a part of E-Business and is limited essentially to marketing and sales processes, and it uses digital technologies such as internet and bar-code scanners to enable the buying and selling process.
34. What is M-V-C ? By applying the Model-View-Controller (MVC) architecture to an application, you separate core business model functionality from the presentation and control logic that uses this functionality. Such separation allows multiple views to share the same enterprise data model, which makes supporting multiple clients easier to implement, test, and maintain.
35. Web Technologies ASP .net , C#
J2EE
PHP
Oracle 9iAS
36. .NET vs. Java
37. Server Technology Timeline
38. Middleware
Software which allows an application to interoperate with other software, without requiring the user to understand and code the low-level operations required to achieve interoperability. The glue that holds client/server applications together (e.g.) MQ-Series, CORBA (O2K).
Groupware Application
Groupware applications provide computer support for group work (meetings, shared info, coordinated work, e-mail etc both synchronous and asynchronous work).
ERP [Enterprise Resource Planning ]
Facilitates flow of information among different functions and different locations
Across production, HR, marketing, finance, ..
Central repository of data
Integration of application onto a common platform
(e.g.) SAP, Oracle, BAAN, PeopleSoft, J.D. Edwards
Knowledge Management [KM]
Create , Improve , Enhance and Manage knowledge as an asset
39. Kisan Knowledge Management System Overview
40. Kisan Call Center (KCC)- Setup
41. KCC - Operating Procedure
42. KCC - Operating Procedure
43. Kisan Knowledge Management System (KKMS) - Need Quick response to minimize call holding
Increased accuracy
Consistency in overall operation
Knowledge Management
Information capture
44. KKMS - Objective To make maximum use of Kisan Call Center initiative by capturing and managing the vast amount of data generated during interaction with farmers.
To set up the Kisan Knowledge Management System as a vehicle to manage information more efficiently and help in increasing the efficiency of call center Services.
To ensure that each and every query is followed till its completion and the information collected in the Call Centres is properly analysed and processed for two-way interaction.
45. KKMS - Intent To provide a ready reference for Call Center Agents, which can be accessed quickly.
To make the replies given by CCAs more consistent and accurate.
To make proper use of the huge amount of authentic field data generated in the process.
To structure the vast information available with Ministry of Agriculture to make it available for the Kisan Call Center operations as well as for general user through a structured database.
46. KKMS - Key Features Multiple search methods
Product, platform or category specific search of solutions.
Finding matching statement/solutions.
Finding related statement /solutions.
Creating and searching by multiple solution types
Solution authoring features. Categorizing of solutions.
Adding attachments,External links and comments to solutions.
User defined search result order.
47. KKMS Key Features Solution scoring.
Facilitates efficient response to customer inquiries by experienced and inexperienced alike.
Reduce agent training time.
Direct access by the users to knowledge base without contacting the agent.
48. Knowledge Portal Views
49. KKMS - Users Call Center Agents (CCAs) Will respond to farmers queries by using KKMS
Experts Answers farmers queries incase CCAs not able to handle the same. Will analyze the data and also upload information in KKMS.
DAC Officers Will use KKMS to access MIS Report which will give details of KCC.
Farmers - will use the KMS to access various information related to agriculture, the new policies launched by government and how this policy is helpful to farmers.
50. KKMS Data Structure
51. KKMS Data Model Agriculture can be classified in two following branches :-
Agriculture/Horticulture crops
Animal Husbandry
Fisheries.
Agriculture/Horticulture Crops can cover following dimensions:-
Types of Crops
Agriculture Practices
Classification of the crops as Annual, Biennial or Perennial
Market Information
Weather
Geographical Location
Soil Category, etc
Each Crop type is having various dimensions
Similarly different operations will be followed for Animal Husbandry and Fisheries
54. KKMS Project Implementation Phases Supply and Installation of Hardware components
Supply and Installation of System Software
Acceptance Testing of Hardware and System Software
Application Development and Implementation
SRS,HLD,LLD,Coding,Unit Test,System Test,Integration Test Specifications,Testing,Implementation,Acceptance Testing
Data Entry and Data Porting
Training
Post Implementation services
56. J2EE components: The J2EE specification defines the following
Application clients and applets are components that run on the client.
Java Servlets and Java Server Pages (JSP) technology components are Web components that run on the server.
Enterprise Java Beans (EJB) components (enterprise beans) are business components that run on the server.
57. Server Communications
58. Web Tier and J2EE Applications
59. Modules Registration
Login
Single Sign On (SSO) Module
Administration
Access Module
MIS Reports Module
Site Analysis Module
Search Module
User Interface
60. About MVC Architecture: The Modal View Controller separates Application Data (contained in the model) from graphical presentation components (the view) and the input processing logic (the controller).
61. Additional Modules
DMS Module (Document Management System)
for internal Workflow Approval or Audit Trial
Middle ware
flexible enough to get incorporated with new set of databases, which can be of different nature
62. Need for Middleware ? Middleware is software that connects two otherwise separate applications. For example, a middleware product may link a database system to a Web server. This allows users to request data from the database using forms displayed on a Web browser. It's also known as plumbing because it connects two sides of an application and passes data between them.
To have flexibility of integrating the Databases of different kinds in future .
Also, the existing MIS application shall be integrated with the now being constructed KKMS system.
63. Data Modal
64. Data Structure It can be assumed that there are approximately 35*100 matrix with X-coordinate having 35 agricultural practices and Y-coordinate having the crop types (12 crop types each with about 8 different crops). The database design will be done based on this matrix. This attribute mapping has to be done relationally according to RDBMS standards. However the structure should be highly scalable.
65. Data Structure (Cont*) As per the Agriculture Experts, the Agriculture can be classified into following branches:
1. Crops/Horticulture
2. Animal Husbandry
3. Fishery
The Crop type can cover following dimensions:
1. Types of Crops
2. Agriculture Practices
3. Classification of the crops as Annual, Biennial or Perennial
4. Market Information
5. Weather
6. Geographical Location
Soil Category
66. In our database fields will be related to each other. Fields from one table may be related to fields from other tables. Some examples of relationships are: -
Spacing between seeds depends on the soil type, planting system.
Amount of irrigation depends on Soil type, crop type
Selection of site for sowing seeds depends on Topography of the area, weather, and soil type.
Amount of fertilizers to be applied depends on water availability/irrigation, soil type, crop type, planting system.
67. In day to day practice adopted by the land record department of states a Farmer holding a land is given a Unique Field Number/KHASRA Number /Revenue Number/Survey Number depending on the prevailing practices.
68. Based on the above Khasra Number, entire information can be retrieved from the land record database viz. name of the farmer, village, Tehsil, District, State, Area covered in Hectares, Fertility of the Soil, Silt Yield Index, etc.
The Silt Yield Index is calculated based on the following parameters:
Slope,Land Use,Depth,Texture,Erosion, Surface Condition, Management
69. SYI Index Calculation(Silt Yield Index)
70. MIS Report Generation Software
71. Types of Reports in KCC MIS Cumulative Escalation Summary: Call Escalation Statistics from 21st Jan04 to current date. User can choose the state or can view the consolidated data.
Monthly Escalation Summary: Call Escalation Statistics month wise. User can choose the state he/she want to view or can also view the consolidated data.
Cumulative Call Statistics Summary: Call Statistics from 21st Jan04 to current date. User can choose the state he/she can to view or can also view the consolidated data.
Monthly Call Statistics: Give call statistics month wise. User can choose the state he/she want to view or can also view the consolidated data.
Call Detail Report: The report gives the detail of questions addressed in the call center and answers given for that particular question. The report has been design in such a pattern that user can view only one month, state wise record, at a time. This has been limited to one month at a time
Daily Call Detail Report:The report gives the district wise call detail of a state in a particular day.
Crop Classification Report: User can view the crop wise details of a state in a particular state.
Hourly Call Detail Report: The report gives shift wise call details.
72. Home Page of KCC MIS
73. Cumulative Call Escalation Statistics Call Escalation Statistics from 21st Jan04 till date of All states
Call Escalation Statistics from 21st Jan04 till date for a particular state
78. Month Wise Call Escalation Statistics Give Report for a particular Month for All States
Give Report for a particular Month for a particular state.
83. Cumulative Call Statistics Summary Give Call Statistics for all States
Give Call Statistics for a particular state
88. Month wise Call Statistics Give Call statistics for a particular month for all states.
Give Call statistics for a particular month for a particular states
93. Call Detail Report Give Detail Report between two dates for a particular state
Give Detail Report between two dates for a particular state for a particular district.
96. Next revolution in software? Web services are the next revolution in software
Conclusion
The software development and maintenance processes, which I prefer to unify and call software evolution, are key to managing computerization.
In my view it is key to our survival in this computer age,
because first man made software and now software makes US!
97. Thanks