انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة

lecture 9

Share |
الكلية كلية تكنولوجيا المعلومات     القسم قسم البرامجيات     المرحلة 7
أستاذ المادة احمد سليم عباس الصفار       18/05/2017 21:33:49
emerging trends in software engineering

? software intensive systems (sis)
? pervasive computing (pvc)
? cloud computing
? emergent requirements
? software building blocks
? open source

1. introduction:
? there is a saying: “i think if you talk to just about any company around here that has an engineering organization, they’re going to talk about how difficult it is to hire good software engineers and the need for talented software engineers is clear.
? a base key to becoming one of those good software engineers. is to be on the pulse of emerging trends,
? take cambridge engineering organization, which recently raised 14.2$ million to change legacy 3d modeling software leader transfer to the cloud. the 33-year-old company has started shifting its focus to software as a service, meaning the need to shift to the cloud was necessary if they wanted to keep up with manufacturing demands. “economic benefits to the vendor and to the user.” after all, gone are the days of needing hardware and data center space. instead, software can be integrated to the cloud with a few simple clicks at a relatively low price point. and may added, applications can start integrating with other cloud-based applications, thereby adding value and sparking more business and software product.
? customer satisfaction is the key, one way to ensure customers are satisfied, however, is by: repeatedly innovating, ensuring the product being delivered, and reflects the best of what’s happening in the ever-evolving field.
? it is very important to focus on ten fundamentals in emerging trends in software engineering:
1. understand and observe the market.
2. well understand the client or costumer requirements.
3. the technology companies often rely on technology, but the real success comes from understanding customer needs and values.
4. keep on information collected at the first step
5. visualize new customers using the product
6. prototype, evaluate and improve the concept
7. the appropriate cost of the software product.
8. solved major customer problems and limitations this problem
9. offered a compelling customer value proposition.
10. engaged customer directly added create more customer too.
? five latest trends in software engineering that every software engineer ought to know:
1. agile software development.
2. real analytic.
3. applied mobility.
4. capability cloud.
5. social computing.
2. software intensive systems (sis)
? a software-intensive system is any system where software contributes essential influences to the design, construction, deployment, and evolution of the system as a whole.
? software-intensive systems include:
1. large-scale heterogeneous systems,
2. embedded systems for automotive applications
3. telecommunications
4. wireless ad hoc systems
5. business applications with an emphasis on web services etc.
? our daily lives depend on complex software-intensive systems, from banking to communications to transportation to medicine.
? system types: example system types (can overlap):
1. business management information systems, (e.g., resource planning)
2. net-reliant systems, (e.g., command and control)
3. infrastructure systems, (e.g., net-centric enterprise services)
4. embedded systems, (e.g., control applications)
? business systems acquisitions typically consist of a small set of large commercial off-the-shelf (cots) products (e.g., information system components), adapted/configured/ to support the business and management functions of an organization.
? typical business systems include: financial management, personnel management, and enterprise resource planning.
? net-reliant systems provide functions that rely on data exchanges with physically disparate elements. these systems involve large amounts of data push (control) or data pull (awareness) function assist humans in awareness and decision making processes.
? a network infrastructure system provides the equipment and capabilities necessary for the successful operation of net-reliant systems.
o complex: large database management and glue, logic to execute and retrieve services across a wide area network of varying security.
o simple: local area networks, timeliness and robustness of services, the network infrastructure is usually critical
? software embedded into a technical system that interacts with the real physical world, controlling some specific hardware. interaction with the technical system via actors and sensors. examples of embedded systems: avionics, such as inertial guidance systems, flight control hardware/software and other integrated systems in aircraft and missiles, engine controllers and antilock brake controllers for automobiles, programmable logic controllers (plcs) for industrial automation and monitoring.


figure 1: possible overlapping
? involved disciplines in sis: software engineering, system engineering, control engineering, mechatronics, telematics
? systems engineering is an interdisciplinary approach and means to enable the realization of successful systems. it focuses on defining customer needs and required functionality early in the development cycle, documenting requirements, then proceeding with design synthesis and system validation while considering the complete problem: operations, cost & schedule, performance, training & support, test, disposal, manufacturing.
? control engineering is the engineering discipline that focuses on the mathematical modeling systems of a diverse nature, analyzing their dynamic behavior, and using control theory to make a controller that will cause the systems to behave in a desired manner. control engineering has diversified applications that include electrical engineering, mechanical engineering, process control, science, finance management, and even human behavior.
? mechatronics is the synergistic combination of mechanical engineering ("mecha" for mechanisms) electronic engineering ("tronics" for electronics), the purpose to study of automata from an engineering perspective controlling advanced hybrid-systems
? telematics is the [integrated] use of telecommunications and informatics. it is the science of sending, receiving and storing information via telecommunication devices. often used for global positioning system technology integrated with computers and mobile communications technology or for such systems within road vehicles (vehicle telematics) vehicle telematics systems.
3. pervasive computing (pvc):
? pervasive computing providing computations and communications everywhere.it mean that: "convenient access, through a new class of appliances, to relevant information with the ability to easily take action on it when and here you need to. “
? pervasive computing embodies the future of network computing enabling wireless communication between individuals and computing devices and between devices itself.
? pervasive computing devices are tiny, invisible microprocessors embedded in any type of objects like clothes, home, cars, watches etc. also known as ubiquitous computing.
? other terms refer to pervasive computing: uubiquitous computing, calm technology, things that think, every ware, ppervasive iinternet, ambient intelligence, proactive computing, and augmented reality.
? types of computing:
1. mainframe computing era: massive computers to execute big data processing applications, very few computers in the world.
2. desktop computing era: one computer at every desk to help in business related activities, computers connected in intranets to a massive global network (internet), all wired
3. ubiquitous computing era: tens/hundreds of computing devices in every room/person, becoming, “invisible” and part of the environment.

figure 2: pervasive computing

figure 3: principles of pervasive computing
? the pervasive computing architecture has the following four important areas, they are: devices, networking, middleware, applications as shown in figure 4.


figure 4: architecture for pervasive computing

? advantages of pervasive computing: quick, efficient and effortless. it supports a new class of intelligent and portable appliances or "smart devices", it gives people convenient access to relevant information, and it removes the complexity of new technologies.
? applications of pervasive computing:
1. pervasive computing in industries : use of pervasive computing in industries allows to achieve maximum output from minimum input and effort. automation applied in different sectors caused in growth of new data which helped in pattern analysis and prediction.
o business-to-business: web access, e-mail, global help desk
o business-to-consumer: touch screen phones, pagers, pdas, laptops, home appliances and automobile electronics.
o other industry applications: travel, health care, sales automation, banking, securities, media.
2. pervasive computing in education: new learning techniques and methodologies which are implemented in ubiquitous environment are known as u-learning. eg: use of smart board in schools. when students are situated in a u-learning environment, they can utilize information provided both by the real world and the internet to solve problems in a timely manner. students can also interact with experts, instructors, or learning peers and all students’ learning activities can be recorded for later review and evaluation. the u-learning environment can host learning activities which are student-centered, knowledge-centered, assessment-centered, and community-centered.
3. application of pervasive computing in healthcare: involve consumer monitoring devices such as blood pressure cuffs and glucose meters that can upload data to a personal computer for collection and dissemination to professional caretakers. by collecting patient data in settings more varied than doctor’s offices, healthcare provider shape to better understand the many facets of patient’s daily lives and then modify therapies to the individual. another important context is emergency care to accelerate access to medical records at the emergency site or to bring ex-parts to the scene virtually. major advantages in field of healthcare are:
o lowering costs by getting appropriate care to the people who need it much faster than previously possible.
o making expert care accessible to more people, thereby increasing the scale at which healthcare is applied.
o making healthcare more personalized, prompting individuals to take more responsibility for maintaining their health.
3. cloud computing
? cloud computing refers to applications and services that run on a distributed network using virtualized resources and accessed by common internet protocols and networking standards. it is distinguished by the notion that resources are virtual and limitless and that details of the physical systems on which software runs are abstracted from the user.
? two different classes of clouds
1. those based on the deployment model: the deployment model tells you where the cloud is located and for what purpose. public, private, community, and hybrid clouds are deployment models..
2. those based on the service model. describe the type of service that the service provider is offering.
? the best-known service models are: software as a service saas, platform as a service paas. infrastructure as a service iaas.
? the service models build on one another and define what a vendor must manage and what the client s responsibility is.


figure 5: service models of cloud computing




figure 6: layers of cloud computing
4. emergent requirements
? the requirements engineering process includes feasibility study, requirements elicitation and analysis, requirements specification and requirements management.
? requirements elicitation and analysis is iterative involving domain.
? understanding, requirements collection, classification, structuring, prioritization and validation.
? systems have multiple stakeholders with different requirements.
? requirements validation is concerned with checks for validity, consistency, completeness, realism and verifiability.
? requirements management includes planning and change management.


figure 7: requirements engineering processes

5. software building blocks
? the software engineering community attempts to capture past knowledge and reuse proven solutions, but a significant percentage of the software that is built today continues to be built “from scratch.”
? part of the reason for this is a continuing desire (by stakeholders and software engineering practitioners) for “unique solutions.”
? “merchant hardware” — provides the building blocks necessary to implement everything from a mobile phone to an hd-dvd player.
? “merchant software” — software building blocks designed specifically for a unique application domain (e.g., voip devices).
? as example social building blocks that has seven functional building blocks: identity, conversations, sharing, presence, relationships, reputation, and groups. they are constructs that allow us to make sense of how different levels of social media functionality can be configured.
o identity: the identity functional block represents the extent to which users reveal their identities in a social media setting. this can include disclosing information such as name, age, gender, profession, location, and also information that portrays users in certain ways.
o conversations: the conversations block of the framework represents the extent to which users communicate with other users in a social media setting. many social media sites are designed primarily to facilitate conversations among individuals and groups. these conversations happen for all sorts of reasons.
o sharing: sharing represents the extent to which users exchange, distribute, and receive content. the term ‘social’ often implies that exchanges between people are crucial.
o presence: the framework building block presence represents the extent to which users can know if other users are accessible. it includes knowing where others are, in the virtual world and/or in the real world, and whether they are available. in the virtual world, this happens through status lines like ‘available’ or ‘hidden.
o relationships: the relationships block represents the extent to which users can be related to other users. by ‘relate,’ we mean that two or more users have some form of association that leads them to converse, share objects of sociality, meet up, or simply just list each other as a friend or fan.
o reputation: reputation is the extent to which users can identify the standing of others, including them, in a social media setting. reputation can have different meanings on social media platforms. in most cases, reputation is a matter of trust, but since information technologies are not yet good at determining such highly qualitative criteria, social media sites rely on ‘mechanical turks
o groups: the group’s functional block represents the extent to which users can form communities and sub communities. the more ‘social’ a network becomes, the bigger the group of friends, followers, and contacts.

figure 8: social media building blocks

6. open source
? the term "open source" refers to something people can modify and share because its design is publicly accessible.
? open source software is software with source code that anyone can inspect, modify, and enhance.
? "source code" is the part of software that most computer users don t ever see.

figure 9: how open source works?


figure 10: flowchart for choosing an open source business model

? these criteria include the right to: redistribute the software without restriction, access the source code, modify the source code and distribute the modified version of the software.
? is it free? keep in mind that while oss is usually free there are some exceptions, while the software itself may be free, make sure you consider the need for additional services or products, as these may have costs attached (e.g. access to software updatings, support services), you also have to take into account possible switching costs, e.g. the costs of switching from microsoft windows to a linux operating system.
? these costs would include moving data from an old system to new systems, training costs and costs involved when switching from one platform to another one (e.g. the costs of switching from microsoft windows to a linux operating system). if your business does not have enough information technology expertise, you may have to outsource outside technical services to provide open source support or to manage its implementation and delivery.
? advantage open source software:
1. lower costs: open source software usually does not require a licensing fee
2. flexibility: a programmer can take a standard software package and modify it to better suit business needs
3. reliability and quality: mature open source software is generally viewed to be of good quality and reliability
4. availability of external support: some vendors offer support contracts and there are service providers that install, configure and maintain an oss system.
5. security: it more secure and stable than proprietary software. because anyone can view and modify open source software.
6. open source software can tend to evolve more in line with developers’ wishes than the needs of the end user.
7. for the same reason, they can be less “user-friendly” and not as easy to use because less attention is paid to developing the user interface.
8. there may also be less support available for when things go wrong.
9. although the open source software itself is mostly free, there may still be some indirect costs involved, such as paying for external support.
? disadvantages of open source software:
1. because there is no requirement to create a commercial product that will sell and generate money, open source software can tend to evolve more in line with developers’ wishes than the needs of the end user.
2. for the same reason, they can be less “user-friendly” and not as easy to use because less attention is paid to developing the user interface.
3. there may also be less support available for when things go wrong – open source software tends to rely on its community of users to respond to and fix problems.
4. although the open source software itself is mostly free, there may still be some indirect costs involved, such as paying for external support.
5. although having an open system means that there are many people identifying bugs and fixing them, it also means that malicious users can potentially view it and exploit any vulnerabilities.
? how do i know if a particular oss application is right for my business? you have to get answers for these questions: how long has the software been around? is the software well established? are there regular updatings, patches and new features? does your company have the skills to install and maintain the software? is there commercial support available to help you install and manage the software? is there good (active) free support from the online oss community (e.g. online forums, blogs)? what are the conditions of use for the software? is there documentation available? is the documentation complete and coherent?
? license and copyrights: there are hundreds of different licenses. author chooses to license under a license granting open source freedoms. some are easy to comply with like: “you can do anything you ike with this software. as long as you buy me a drink sometime lf we meet". some licenses are more difficult to comply with: gnu gpl says that you can only use gpl code if modified/distributed code is also released under the gpl, "copyieft".



? reference:
1. emerging trends in software engineering to keep your pulse
2. https://en.wikipedia.org/wiki/requirements_management
3. pervasive computing handbook, (2001), uwe hansmann lothar merk martin s. nicklous thomas stober, springer-verlag berlin heidelberg
4. pervasive computing issues, challenges and applications, (2013) , lathies bhasker t department of computer science and engineering.
5. pervasive computing in healthcare,(2007), jacob e. bardram ,alex mihailidis, dadong wan.
6. software design issues for ubiquitous computing gregory d. abowd college of computing & graphics, visualization and usability center georgia institute of technology atlanta, ga 30332-0280.
7. debashis saha and amitava mukherjee “pervasive computing: a paradigm for 21st century” published by the ieee computer society,march 2003, 0018- 9162.
8. “software engineering practitioner’s approach”, roger s. pressman, seventh edition (2010).
9. “social media? get serious! understanding the functional building blocks of social media”, jan h. kietzmann , kristopher hermkens, ian p. mccarthy, bruno s. silvestre (2011).


المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .
الرجوع الى لوحة التحكم