Engineering future software




















How do we evaluate assurance in a highly data-driven environment? The DoD is already moving in this direction, but how can we increase confidence that there will be no unintended consequences? A Guiding Vision of the Future of Software Engineering Our guiding vision is one in which the current notion of software development is replaced by the concept of a software pipeline consisting of humans and software as trustworthy collaborators who rapidly evolve systems based on user intent.

Advanced development paradigms, such as those listed below, lead to efficiency and trust at scale: Humans leverage trusted AI as a workforce multiplier for all aspects of software creation.

Formal assurance arguments are evolved to assure and efficiently re-assure continuously evolving software. Advanced software composition mechanisms enable predictable construction of systems at increasingly large scale. Advanced architectural paradigms, as outlined below, enable the predictable use of new computational models: Theories and techniques drawn from the behavioral sciences are used to design large-scale socio-technical systems, leading to predictable social outcomes.

New analysis and design methods facilitate the development of quantum-enabled systems. Research Focus Areas The fundamental shifts and needed advances in software engineering described above require new areas of research.

This post has been shared 8 times. Get updates on our latest work. Sign up to have the latest post sent to your inbox weekly. Subscribe Get our RSS feed. Designer software blends entertainment, hobbyists, fashion, home decor, and personal branding. Adam Lally gave a keynote describing the design and development of the Watson system. An interesting take-away was that most of the engineering effort was not software-engineering as much as data-engineering : data cleaning, feature extraction, data manipulation and massaging, and manual data source selection and training.

Classic software engineers tell programs what objects they would see, in exact shape, color and size. They state exact sequence of actions, what to say, and sometimes even how to clean up after themselves. Software trainers , show programs how to exist in our world, train them, and teach them how to learn on their own.

They give the programs the basics on how to recognize objects, but the programs must learn how to put the pieces together. Programs will learn actions through feedback and digital playgrounds, be fluent in multiple languages, visualizations, and sonifications and be potty trained at an early age. There is already research in place for some of this future, while other research is just beginning. The following research areas will be essential for the future of software engineering in the next 50 years that I have been personally examining.

Understanding how programming works in the brain is not limited to theory building, but can have real downstream effects in improving education, training, and the design and evaluation of tools and languages for programmers. Finally, by understanding what it takes to program, better enhancers and sensors can be constructed in support of augmented programming.

The software development community has been steadily creating software and tools that allow developers to coordinate on increasingly larger scales. One example of an emergent form of crowd programming comes from the language that everyone loves to hate: Javascript. The techniques used to automatically mine, collate, and extract knowledge from online archives will become invaluable for developers having to maintain century-old software.

Many have dreamed of better programming environments. I believe smart desks, tabletops, gestures see CodeSpace will vastly improve in the future office.

As part of its work as a federally funded research and development center FFRDC focused on applied research to improve the practice of software engineering, the Carnegie Mellon University Software Engineering Institute led the community in creating this multi-year research and development vision and roadmap for engineering next-generation software-reliant systems.

An executive summary is also available. Chatbots, voice assistants, coordinator programs, and other intelligent devices increasingly enter our lives, making the daily routine easier. Fighting hackers and crackers, data protection is the principal goal of software engineering development in Financial institutions and other organizations want the assurance of the safest software engineering environment for their business.

That is why top-notch cybersecurity professionals are urgently needed. Trends in software engineering are related to what is currently in great demand in the market. These are the security of operations and data protection, reliable data storage, and intelligent personal assistants.

Cybersecurity stands alone, but this industry supports all other technologies and allows them to work as they should. Looking at these trends, you can be sure that the future of technology is promising.



0コメント

  • 1000 / 1000